{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian Network" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from IPython.display import Image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian Models\n", "1. What are Bayesian Models\n", "2. Independencies in Bayesian Networks\n", "3. How is Bayesian Model encoding the Joint Distribution\n", "4. How we do inference from Bayesian models\n", "5. Types of methods for inference" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. What are Bayesian Models\n", "A Bayesian network, Bayes network, belief network, Bayes(ian) model or probabilistic directed acyclic graphical model is a probabilistic graphical model (a type of statistical model) that represents a set of random variables and their conditional dependencies via a directed acyclic graph (DAG). Bayesian networks are mostly used when we want to represent causal relationship between the random variables. Bayesian Networks are parameterized using Conditional Probability Distributions (CPD). Each node in the network is parameterized using $P(node | Pa(node))$ where $Pa(node)$ represents the parents of node in the network.\n", "\n", "We can take the example of the student model:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABFcAAALMCAYAAAAhL11HAACAAElEQVR42uzdD3xcVZ338ZNkkkySSTJpAw1tgBFirVAgQMGAAQNFg1Qsa2WzWtaqRYsUqVC1Ql3i0oetWKSLXbb1qSW6BQtWjVq1ruUxC32w9kG2ssUta5ECBQuUUkoLBQrOc7+Zc8nN7cxk8mcy/z7v1+u82kwm8+ecO2fu73fPH2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgQXV1d86gF6pH6BQAAAABgiAHrqlWrDt1xxx07KMMr1GPayx4+sQAAAACArKTAlVqgHqlfAAAAAAAIWqlH6hcAAAAAAIJW6hHULwAAAACAoJV6BPULAAAAACBoBfVI/QIAAAAAQNBKPVK/AAAAAAAQtFKP1C/1CwAAAAAgaKUeQf0CAAAAAAhaQT1SvwAAAAAAELRSj9QvAAAAAAAErdQj9QsAAAAAQKEFrZOc0pagFGI9TrLFL5Lg9qEI2voNJrlPvVNaE/xuqK9liu/nFqc05MhxCgAAAABA1gatXU7Z65QdcUoh1mOXLX6dCW4fiohTovbfRNaaxAmuobyWGfY5vZRs2ZAjxykAAAAAAFkbtHbZYJ167KuPTCdX2pzSk+TvB/NaAk5ZYGIJtGic33c7ZXoOHKcAAAAAAGRt0JpKcqXJKSttwK+y0Abtomkly+3t6zyBenucx53rlGlZXo+pJlc0ZWetfd/rndLh+Z2SGTNNbFTIIk99rLe3qR6SJVfW2793hZyy1D6X2mGZST250mmfs83ET66ovTbmwHEKAAAAAEDWBq1uMqHNV5rt75VE2WGD9CabJNjtSSass4F/kw3UD9r/qxwyfWt6BO3fTc7yelRdKNkwy1e6TV9CI2LfZ4f9v34fte9ZemydzTGxZJISMRo5MsO+/40mcXIlbOut3nPbWlvPWmdlpn3uVJMrIc9rjib4fdQMYe0VkisAAAAAgKyVJWuurLG/D5r+oygCNtB3R6VsMrGRFG5wPtn0LdSqJMM8+38lFh7MgXpUfewyfaN03LLD9CU09F69I3CUoNhp+tZI0f0X+B5zmednJUkSJVeUiNnt+bnB3rfRc9tKM/gpShETP7li7HubluXHKQAAAAAAWRu0pjItaKqJjdzYamKJh12ev9GOM1ts4K7fe6cMaUSHm1BRQmZuDtRjqtOCZpvY9J3tJpac0GiSNvu7Hvvejefn2b7HS5RcmWn6LybcZg5Pigxl/ZeISZxc2eh7vdl4nAIAAAAAkLVB60DJlck2cTDbkwzwjlzRKJWA/Z3uo8SLO1pFIzr2m1gCRv/W50A9ppJcUQJEo0umed6T3neb/b8/uaL6Wuj5WXWWKLmiaVfe191s7xvw3LbIjGxyZZvpv2ZMNh6nAAAAAABkbdA6UHKlwyYS3OBe01P2ev5GSYUZnvtrNId/SoxGtKzNkXpMJbmyxMRG8rjaTCxx0WZ/9idX5tg6CHl+TpRcabK/C3pu227/xtjH2GpGNrmixFdzlh+nAAAAAABkbdDaZYPueEXJgrAN5rfahMKD9t+V9u+1iK2SLZpassX+3jtCpdU+1vQcqcdUkiuT7XtWEkU78ay379tNgPiTK0pMaQ2bHbaeNpjkuwVtN32JGrcOd9m/1e82mZFLrkwxsfVisv04BQAAAAAga4PWeht4xytBT3JAQXiz/b9GT3gXWA3ZBEC80Q+TbGIgkCP1WG/iT18K+2533/OkOH/XYPpGqfjrYor9fyRJnWjkzzLfbUH7fA1xXksq3KlbfovNwGvuZMNxCgDAcM4JfqzvLUrWlT3UQUGUH9MLASiE5Eq6KBmg6UIbhhq8F3A9Knmy3f470P0iSUoghb/fkcLzkFwBAHBuBdoFtDMAOqAMUWJF04dC1OOgabHcmQPcR1OtupKUgUa3KPnVwXEKAODcCrQLaGcAdECgHqlfAAD4zqJdQDsDAB0Q9Uj9AgDAdxbtAtoZAOiAqEfqFwAAvrNAu4B2BlCAHZB2sGlM8LsWM7gFT5tMbBth/3ofM+jIOU4BAOA7C7QL7QwA+dgBaWvfB03ftst+ei1tKT6WtvXVtsvrnLLbxBZldS1yyhw6co5TAAD4zgLtQjsDQL51QNpVZnaS36eaXGl2yl4TS9aIdrJRosXdDlijX3aaIW77S0fOFyUAAHxn0S6gnQEgGzsgTd1RQsS7VbKmCHU7ZYtTFpjUkyudTlnru22vfTyXEjnz6Mg5TgEA4DsLtAvtDAD50gHNckqP52eNOlFCRNN3tHbKcqdETWrJFSVOFvlu22Kfw/t8G+nIOU4BAOA7C7QL7QwA+dIBLTOxBIprrumfbNGUHiVb2lJ4LCVXOn236bG8yRWNYtlPR85xCgAA31mgXWhnAMiXDsifEFlub/PSSJO2FB8r3siVmZ6fIyY2EoaOnOMUAAC+s9JLmxU0pOFxNZ28nnbJOmrrQBoet5F2BsAJwMCUEFni+TneuilbTWrJlYVm4DVXJhmSKxynAADk3neWzpd2+Mo2p6w0sYtH6aQLXTOG8HcaoTzX/n+NGdy6dzpn2+CUQ/a9zvf8Lmxvy2TQPc8Mbqp5cJB1uMTWmbF/532d+n/LKB6+7WbgZFazPWcPxHm9gz3O/Rdal/van3NGAAStcaij7PZ1zPs9JwmtJvU1Vyab/rsFzbIduzeDPs12/AT/HKcAAOTSd5YCzm32/MYt8+25zi6T3gTLDtN/mnUqdA633XMepk0Kpqf4t+4Oj0ocNdlgXeeHM33nkGsy2C6dg0wg6P49g2zvHs85bdT3u0mjdOhG7HMPdHw96GnfVnN4giQVC+1z+f/WXZMxksHPHwBkfQekZMpu320L7G099iQi1ZEr7heX/naj/bfV9/vFTllK8M9xCgBAjn1ndSUIzhtskN89hMcM2oA16LlNIxT8I0Lc5ErA3j+UwmPrtc4d4nudbYPpoO8cbovnZ72G/fZcMhPtkiy5EjGHj/RIlFwJJajTZMkVk+A4SDYFK5RC29XHSWBEzMDJlen2nH2oIp5z950mfmJGo6BWcs4IgKA1OWW62+J07i2+L9VUNdi/jfflsWO4X8J05AV7nAIAkMnvrETJFdEojkP23KctTjDc5gnO3WB5gU1gRO2/7miDqC09nvOwHTaw3WUTGgdNbJRBIpPtY3gTDD3m8I0Hkr3Xdb7b2u1jhj23aeTK8gy1iz+5ssPWyQ5PHXZ57hv1FLVBwCYMDtr6179LTd9In2TJFe+o7gabmPC223pPXevxlnie55B93oDntWlafbfnMTTiqMlzrLglUfv52zaVZJBXh32/9fax4iVXWu17CGXo8wcAORG0tpvUrrY02k4+XkllsbTpZgSGj9KRk1wBACDLkitTbTDbMojkyhbTN2plow26F9qfW+zPMzyJg72mb52PDvv7aQlejxI3WwcIwJOJF2C76+ZN9tymkTG7sii5sstTR26CYarn/t72W2zv764NqH9327obTHJF69JsMn2LyS72JUIW+p5nsv15oed1eds+Yt/Lat/xEklQD2H791M9tw02uTJQ2xv72g6a1KeWcc4IoGCD1sVm4HmU7gJX8cqCFJ5jmUnPivV05IVznAIAkKnvrGTJlTZPwN1mUkuuzPIlCvzTtHd4AnT9378jo0aWJLo4ttYcvsnAcJMrEXP4OnxuUqk+A+0SL7myxHef3Z569idXNALIv8DvQs9jppJcceukNUnb6TX4F4PVz7uStP1Sz3NHTPLkirs+oncqWTqSK7JtEMcQ54wACFqpR1C/AAC+sw6TLLkyzQazzSb15EpbkkSBP0CPt6Ctfrd9EAFyOkauTDapLbaajnaJl1yZE6cO4yVX3DbYZfrv/rTb006pJFfcdg37nneDfb4G+/vdSZ5H99sY572lmlzpMIcnUtKVXEn2O84ZARC0Uo+gfgEAfGcNKFlyRSOANRIiaEYvueJfYHagIDgda65MMdmVXJkVpw7jJVca7eueb/qSJN7ib++BkiuNCeq63vStr5PoeeIttDuY5MoM+3vv7pzpTK6szNDnDwAIWqlH6hcAgDz4zkqUXNHCo1oPxV3Y1Z2m0eS5z1wz/OSKf8rLpiSBbrzkyGCSK9otSKMr/LsF+ddxcUfshDPQLsNJrhj7/vxTrTQKZGmc9k6UXNHirgdtfblUF/s9db3T1p2XtrReluB1+W9zj5dIgnqYEud4S1dyRSOlFmTo8wcABK3UI/ULAEAefGd1mb6Eh1uUUFFiZZsnweAG3FrEf7IN2Leb4SdXDtqgvMn0jZSZnOC1xltodjDJlbBNCug9aDrQDPt8M333W2CGtwXwaCZX3N2ZZts2mm/rdI5tkw77Hhd72juVBW07Td/6LXqMB03/5Ioe/5Btk4itS72OJZ6/T5ZccacWKekTb8fNeAvNpiO5Eopz3HLOCICglXoE9QsA4DtrUBbYwNNb1tmg2r89rUZ0bLFBdY8NSL3Bco8vUJ5lDt9RcY0nMbDGPk+PDaQ1aqUlyWtttM/tTb4sjZN8SEZJlQ32cXaYwxdldQPxzgy1i7/O9P/2OHXo3hax9abnm+JJfGy171EJMC1oG/C0tzuKpd2XAPG331xbVyod9nm89TLb9zydnueZ5Xkek+C2ZfZ1L05QF1q82DuKyf96B2OpiT86RUmhXab/9CPOGQEQtFKPoH4BAHxn5bXuJMH4SFACR4mehgJvl4W+OlDyQVOO5o7ia2gzh0/jGmlK4HTy+QPACQD1COoXAMB3ViGZZANu/3ooSgREBiip0AiHJbRL77QojWDSSBaNFNKUmv1mmEmnIVhv+q/9IqEU2jqUwmNrKtouk5m1dQCAEwDqkfoFAIDvrIzSqAr/oq1KivQMUAYSsUmFEO3Sm3jQqI5dtijJ0ZyB1xGvTdpTaOv2FB5b728Gnz8AnABQj6B+AQB8Z/GdRbuAdgZABwTqkfoFAIDvLNoFtDMApKSrq2veqlWrDqkTogyvUI9pL3v4xAIACO5Au4B2BkAHRD2C+gUA8J0F2gW0MwA6IFCP1C8AAHxn0S6gnQGADoh6pH4BAOA7i3YB7QwAdEDUI/ULAADfWaBdQDsDoAOiHkH9AgD4zgLtAtoZAB0Q9Ug9Ur8AAPCdRbuAdgZABwTqkfoFAIDvLNoFtDMA0AFRj9RvHqp3ylSnzHLKbKd02tJlywan9DhlW0lJYKdbioqKHrG3r7f3W+n529n28dqcEuYoAwqiH2m3n/s5ifoRp9941NuPOLdtTdKPzLKllX6k33fWHn1vUbKrrFq16hD1UBBlD70QAIJW6hHUb8ApzU6Z6ZQlTllXXFz8XGlp2b4Jx0QeO7O17dH3nvf+//nbT3zmfz72qSt2fPnGJY9/dfFtu//13368Z+U9v4x29zwU/cVv/xj91eZHe/9du2FzVLd/67tr9+l+X7zh5qf0dx2zPrNdj/Oe1vP+Z/zRx+4IBEoPOEHULj2ffd4O+zoCHH1Azgk6ZYpNeixVUqS4pORF9SPHvOP47frcv++CDz6qfkD9wVdu/OaT6h9uX939UrJ+5J9X3bNb95t/w+Id+ruP/v3l28469/zt6pfGHTXhiZJAYL/zPE85z9ftlMVOmeGUyXxngXYB7QyADgjUI/Wbbg0mNoJkTXEg8N/FxcWv140Z+0zzGWf9afZVX3xs6aq7D9z70GPRLU/tT3tRIHXbqnsOfubqLz9x6plnb9fr0OvR69LrM7Er3Y0cjUDWaXLKfKesdT6vf9LnduwRRz6tpMfn5i98atn3fvRqzx+eGJV+RMmYW1as3nfZZ656fPKpZ/ypprZuV28/Ulz8sImNelHiOO9HuHBOQLuAdgZABwTqkfodpUCoqKTkAV1JnnLWudtv+Mbtz9+9/oHo7x/fOyoBUKpFr0ev68Zblr90znnt28vKyl8OBAL/z3n9C02BXpEGskSLUxYp+VlRWbXngosu+dPXl3Xt1SiTbOpDVDZv3x296+f3RRcs+ubuU6a0PK6Rck7/939MHidsOSegXUA7A6ADyiQNY44M4v46IQtRj0kFbJ0OZmpHfTbVax59UU5xA6HKqqoX3/+hj/x5xV0/fT3bkimpJFvu+OG/vzn90sueqK6pfb6ktFTtomkHbYYpREC6vyO1XspKTeHTyJRL//7yx+9cd9+budSHuMmWW/73XQfb3j/tid6EbWnpgyaWsJ3EuRVoF9DOAOiAhkfzsnc7Ra9Fi+e1JrmvrtZtt/fdq4CVeoxruqdOdw1Qp64G+zezOE5HhIa+LywJBHaFx9Y/3zFrzlO6eptrgVCyorUZZl3xhacnHBPRegt7baIlQs8KjBiNEFtZXFLycqRp4uNXzv/q05p6ky99iJuw/dCMj+8MVdfsKSsr/7PzfufZZBLnVqBdQDsDoAMaBAX0+01s8UxjA3slT+JdBQ/a5Isb/Dfav22hHg8L6hXottmfO2yCZaCTVe0EcZDkyogc052BQOlL73v/tGeUgMinhEqyNVsuu3zuTk11MrG1FZrpYYEhay0qKvpJWVnwRSVURmvNlEwXJaBPO/Psvzj9yB6bZMnJ9VkI7mgX0M4A6IAyYa6JbfHotTtBwkSjMbb6bmu2wSwdeR8tGLjFd5sSVu0DtMNa2xYkV4aeVFmq9QSmd1z2rJINhRAM+cv9jzwd/fyCG54tr6h8ScGh6UvyARjY9KKSkvtC1TXPLbjxluc0haYQ+xElpc9rv/hZm6ztzLUkC8Ed7QLaGQAdUCYsM7Gr3F4bEwT4nfa+82wSQNvGTqEe49bTGt9tG0xsN4l4JtnkSz3JlSFpKi4p+Z7WDvjbWZ/ZO1q7++TCugpf/fpte2pqw7u1eK+JJUcBHE4jNWcVBwL/pbVUlixf/WKurceUrvKz+x+OXnRJx+7S0rJXnPq5zWTBxRSCO855QTsDQLZ2QEqW+NdNSRTgrzSx6S7LTWwNkQUmNi2oiXqMm4Ty13NngpN6jXJpH6Duqd84deec7F9XVh7cf/lVX9yvERsEQ/HLLd++88AR447aVVRU9B+GNVkAr+ai4uKHj4kct2PFmnX76S/iFyWtL71s9r5yp781se3rObcC7QLaGQAdkM9ymzRJJbmixTK3+W5bb5MsdOTJkysa5bMwzn0Xm9h0oIgtm0xshEs9x2lSkWBFxaYTTj51b6FO/xnKwpVXfOG6ZwKB0heyMYEHjDIltufr83D9TUv/Qh+RWtFW08e84/iXK6uqf55t31MEd5zzgnYGQAeU6Q5IgXy37za9pmlx7qvpQBt9tymJsIR67GeOOXwdG41O6YhzX73uaJzSxXGa0EytJzLvukWvEewMvty9/v++WX/EuGeKioqyOjgC0ijiHP+/02iVXzzwxzfpFwafqP345XNfq6wKPW+SryXGdxZoF9oZAAqqA9KCtJrq4y5WpzVUNOw3ZH9W8OXOsdaWlNrNptH+HEqSiCnkjrzJV0+T7M9uIBs2ieetMy0osXBFZdW68cdEXr57/QMEOcMMjv7uk3OeLi4pUXA0g54YBWSuc9y/+PkFnU/SFwyvrLznl9HwmLGvVoaqNfo1yHcWaBfQzgDogGKL2mpBVY2W0E5Bczy/6zL9R2FoCtAue7t2DlpLPca12Caeumx9zfX8rtMcPrKF5Epyk4MVlS90fOKzrxbq7h3pKN/98b2v1obHPGuP0wA9MvKYLgasP3LcUY93/5/fM+ptBHcnm/rBDx+srq55wvRdUOA7a3DaTGzqsKZdrzbJ18VaYvvreCXrRyLmYdAdsOfFD9oyb4DvUvf+m+z9F5m+i5nENgCQRx1Qiw3qJ/lu18/Nvtua7H3bqMekpth6muy7PRKnTl1ZsbV1ltXvpKpQaO8tK+4kmEnTrkLvnHSi2nctCRbkcWJl45mtbVvZBSg95UtfuzlqE7UNfGcN+tzrkIldkGm3SZYdSQLueMkVXcDZmQtBeh4G3cts/Wva90z7/yUp3F/3nWYTauuJbQCADoh6pH5HQ0OwsmrfjbeuIIBJY3lg27PRYyLHP20OX9wayHVKGK6ffOoZfyKxkt5yxTXXR0M1tU9mQ5CfQ+cEWvNujefnoDl8tGsy7TY5M4VziVFXb+veu+7QdNN/GrhX2N7fu/6edt7UOnuTOGcEADog6pH6TWtiJVRd/bSuiBK4jE6CpWHC0X82sV3BgHxJrKw98eTTtpFYGZ3y8U9f+dbYI8Zty3SCJYfOCbTG3RzfbWvM4RsNxKM61oiVxZxLZMQMmxgJ+pJjUZtkMQkSLN4Rom32/hHOGQGADoh6pH7TJVQbrttx+ee/9BYBCwkWYKiJlXdOOvEPJFZGt1z0Nx1/PbJh/EMmg9MMc+icIGoOn2KtdTi2pvC3Wr9tl8mhNTvy7FxNa6fEez9KeM0f4G81UmWu/fsl+db5ck4OgA6IekT21G9gTP0R/60roAQqmUmwhOvGPG1P8IFctXrC0cduJ7GSmd3Izr/w4kPjxk+4l3OCISVXOhME7V5KqOxNIYjnXC19ErXTDvu7ZBY6ZaNtQyVX8mq9M87JAdABUY/IkvptPCZy9envee+bBCmZKxt+v/2Qtqs1scWrgVzTVl4efEqJQj7PmUuwOH35W8cd984PcU4wpOTK9gH+braJre0R5lwiK5MrC1N8jEm2HedxzggAdEDUI/U70oJVoZpX/u0nvyFAyXC57DNX/bdJbd4/kG22XP9P//xHPseZLV+//bvRcUdNeI5zgqS0wOkM323LnbJhgL/bkIv9c56dq2nHn/0J2nTmIB5H7ZhXOwZxTg6ADoh6RBbU7zHHNS1u+8C0vxKYZMcWzeXBCs3nb+UTgFwKeGrrxmzjM5wdZeK7J781+eTTP8c5QUKbzOFrbmi9lWSL1GrRVI12mMW5REZNNrGRR5M9t02xt8Ub9dlsEy/NvtsfNLEttTlnBAA6IOqR+h0x4apQ9es/u/9hgpIsKdffdOvj9uQfyAXBoqKiJ5bf9dM/8/nNjrLynl9Gx9Yfuc+M8poSOXROoASJRj+02Z/n28SJG5xHTGz6ScQXpEfjBOmcS4y+HhMbRRS2ZaPpP+pIuwa5U370Gdhmf19vk2QLbMIlry5icE4OgA6IekSG63fiu0/67ocvnUlAkmWlbky9dg/q4FOAHLAgctzE/8fnNrvKlLPOiTZPafka5wQJLbIJFSVMdpv+2/i2mcPXZZlubwvl2gc0D8/VGmxCJWrLRnubSyNSvO+5yXd/7Sw0jXNGAKADoh6p35EULA9WvHnvQ4+N6hXVK665vl/5yqJvRuOt96Lf/eK3f3z7Z91PiSDdrp87v3F778+fuvLahM+nx9X99P+l37n7sOdeuPi26NoNmw/buWfm7LnRTO54suy7a7Vz0BY+BcgBe3/a85/Pk9DIrnLXz++L1h8x7lXOCZJSoiRi8mzXmAI6V2vwJVUGopErjbQzANABUY/U74gb29B45sQTThrVtVaU0HCeuveqqlvGHTWh97Zzp14Y9e40otuUjHEXadTPf/fJOb0JkdtXd/f+rOSKki6J1i8Z33hM9O71D/T+rPuWlQf7PffYI8a9/TjeZIp+nvulGzK660dRUdFrJjaEGchWk8rKyp8kmZGdJVRd81czijvbcE7AuRpoZwB0QKAeC7J+W849f0H7hz8azURyxX+7kiWVVVW9yZNEf/euE09+++err7uxNykz0HNdcNEl/RImSrb473fTbd+JlgQC/ZIpv9r8aO/rGc1RPf5SUxvW2itT+CQgi82YcHRkc6Y+Ixphpr5gMAtGuwnbVIr6xxtvXZH0Pt/67g+jZ7e9v/f/6i+UtHUTuresuDN6XvuHMtaHnHTaGdEPTr+0I1++s0C7gHYGkGW6urrmrVq16pA6IcrwCvWY9rInnZ+FU05/z88HE5ikM7ni/k4jS+5/5Ol+04I0nUcBixIjuu1LX7u59+fqmtren91Axh9EhceMjX57zboBkysqH71sdu/9vbcpYPrM1V/OWGB08mln/t6pq9n02shiiy685NKNmVxXZDBrRml03GDu7/Y5iX6vkXZK8rp9kPor4xlx5yY4NPIuE/Wjfu3cCz74bYI7gm5qgXYGgLQmWKgF6rHQ63fiCSc9pquu2ZJc0don+p37mtwgZSjJFT2GEjVKsqSSXNH99Xze9Vf0PInuPxrlU5+75g/Oa1rKJwFZrPsfvr7sd7mSXBns/QdKrmi0mxI27s/xkivqW46OHJeRNZw0ZbLlnPM2E9wRdFMLtDMAAEijsUcc+Yp3wdhMJ1fcwMQdhu8NUvR3Coy8j5Ms8fGJOfOiJ5x8Wr/bkiVX9Dz+oEiL4eq2TE0NWva9H2laUA9HKrLYjp/e/187syG5oql8+nxrimHk+Im9n139rOSsO8VHCVdN9zv1jLP6LV6t23R/TT3U36eSXFGyRKNWvKNS4iVXdD8lgkc7ke32axPffdLzBHcE3dQC7QwAANKouKTkr6N9sj9ayRUFUt71VoaSXIkXKI1mcYLFQ6b/dpJAtjmU6e2G3eSK+3lVgkTTAbt7Hupd70QJFSVRlCTVFB31C0rEuP2EEjFKpPb84YnekShaf8kdwZYsueImX/V3A/UZeh2Z2PJe7/PIhglvENwRdFMLtDMAAEij2roxb4z2qIxkyRUFRPqduy3zcJIr8Yb/J0uuKKGj53ODrmxIrnT96NcvOM+/iSMVWWzXrx/cvi+bkivekSTuVEMlWvz3/9n9D/f+7o4f/brfY76n9bzetUoGSq5o2qB2G4uXIPb3Gdou3rsg92gV9aXHT3z3SwR3BN3UAu0MAADSyDnZf8o7BD7TyRUFPQpW3LUJhpNc0WO5O3ikklzRY/uDHzf4uuvn92UkcPzsF67b6jz/Mo5UZLF1//StO/6YTcmVZKPPvPd3t3fXaBb/9uxuX5MsuaLbtZZKKsmVTK3fpG3rzzp36sMEdwTd1ALtDAAA0uj0ltbfXPvVmzKeXFESQ1d2jWdK0HCTK3pf/sAnXnJFV7R1u57Ln2jSGgmaIqApBZkIHFved74WtJ3LkYostuQjH/vkA7mYXNEW7Ppd5zdu7+13vMXtC0YquaKFZTORXNHW9hdcdMldBHcE3dQC7QwAANKo9YILF4/2OgBucsVftA2yAhDvfYeTXNEOQsa3GK2bRPEX/6KUbtE2zO7Cl5kodfVHaEHbFo5UZLGO49856aFcTK64U4b804KUbLllxZ0jOi1IfUnTu07ISP1M77hsDsEdQTe1QDsDAIA0OvHEU87z76iT7qLgQ4GHtyjIibdNqX53/yNPv/133i2X9bO7Nkuiomk+GhbvHaXif253LYZ4RVeldXU7U4FjcXHxK04zhThSkcUmV1RW/jlXkiuaKqiEqdt3aEqQ+gm3H9CoFY1Wcz/3yZIr7iLY2bygrZLWp5x1/gSCO4JuaoF2BgAA6RUKVlS+5SYw8q1oC9ahLiKp4EjJlXhJn9Eo3+u+9/WioqLHOESR5QJOObjh99szsmuQdvvRtuverZi9SVf/bUqaaPcgJVD02dbINu0epJ+NHUF39XU3vv33SsRohEqirZh1f28CNt5ryNRWzEoYadFygjvQLrQzAAAYBSedesZ9bnCSj0VXtt0h/oP9OyVnMvW6I00TNSVoDkcocsDiM1vbtuZyP7F5++5+O4UNZprjuVMvTHofJVUykahV0ujcCy76wSgHd3sU4FGyq6xateoQ9VAQZQ9fRwAAZNCEpqbGqlD1W6O9JfNoFb0vbfE8mL/RSJ5MJla+9d21+4oDgT+Z2KgAINuFi4uLn/vBrza9nK9J2mR9hUavaFHuZIla70Ldo1E0hdKOWgmO5oHQ1dU1j49D9qFdaGcAADBKTjn9zHsysR4AJf5Ug7qx9X9xmmUaRyZyyNx3NL3rT4X4mdW0IE1Pivc7JXa9C3GP5oi91vPbb+GwBAAAAEZXOFRd80ayxV0po1MW3HjLc0VFRf/BIYkcE9AaQf/6bz/eU4ifWy1kG+92LXY72lu5K6FzZMN4LYbNyDcAAABgtJ1y2hn/oh0tSHBkrigIKy+v2Os0xxSOSOSgGXVjxj6ZqUWgKX27pJ3d9v75HI4AAABAZgTH1o/bk2hnDEr6pwNNfPdJzzvtsJJDEbmqqKjo3tbzPvAMn+nMlJmz50Yjx73zSY5EAAAAILMa6sbW71+4+DYClVFOrJz53vftcgLTHxqG8iO3hQKBwG8/fOlMEiyjXD515bXR8Ucf+6zagMMQAAAAyHRkNGbMieExY18dyvbFlKElVlrOPX93oKysm8QKSLBQhlI04vDIhvH7nLpv4PADAAAAsijBUlFZ+cbtq7sJXEYnsbKexAryrRspLi5+aMbHP7WHz3p6S+c3btd20K9OaGpq5LADAAAAskzt2HHn14brXr/jR78mgElT+cDFH3lJV/gNw/iRnxpKSkq3z7riC7v5vKenaIShEitKiHO4AQAAAFmqsbHxg1Wh0Gsscjvy27aecPKpe8vLg/eRWEG+J1hKS8seaTnnvOe1LTGf/5Eb9aY1VmrDdQcmnnDCmRxmAAAAQPaLjKk/4k9nnH3uoV9tfpTAZpjlH25e9kZZeXC/U6/aKpWpQCgEweJA4JsVVaGXb7vjB6/TDwyvdPc8FH3npBMPHdV4zO+duq3n8AIAAAByR6C+YfzNNbXh11jodmhFianTW1pfLA9WbHPqcxKHFApQS1lZ+TMXXHTJnvsfeZp+YQjlK4u+GVU/fGRDw3wOJwAAACB3TakNj3l22oyPvfHAtmcJdlIsS1asfrMyFNpfHAj8o2G0CgpbqLik5PbacN1LK+/5xZv0D6mVex96LPre8z5wqP7IcY85ddjEYQQAAADkQXA0pv7I79cf2XDwxltX9M79J/iJX+5e/0D0jLPP3VcerNihxBSHDvC29tLS8ue0qPPP7n+Y/iJB2bx9d+82y1pcfFzD+GWG5CwAAACQd9rCdWO2HNkw/hUNVVcQQDAUKyvv+WX0pFPP2FtRWfmcU0/znBLkcAEOE3ZKZ7Ci8oWWc85/SclI+o9Y0bSpq6+7MVpdU3uw/siG+516auZwAQAAAPLblHDd2N8oCPhi59ffKtQki0bwLP3O3dFjIsfvC1VXb3fqZZbhKjOQCiUf5wUrKp9+90nNL357zbqCTqrMuea6tyqrqg4eOa7hp4b1mQAAAICC01xTV/cTBQVzvvCVQ4WyYKWSSf/4zRVv1h8x7uXqmpoHnXqYzqEADImSkTODFVWPHn3sO166deWaNwtl2qHWVPnYpz93qDxY8Vrd2CO+Z1hXBQAAACh4TVWhmjvLyoMHTz3jrL2d37g92vOHJ/IqENJivjfd9p3o+e0X79X7DNXU/Np53600PTBiplWGQg8EKypfueiSjn0aFZZvo+K0g5jWUznx5NNeKg9WHKitG/O/nffdQNMDAAAA8Ao5ZUaouvZHpaVlr0w84aS91yz8X4dydfFKBUJfufGWtyY3n/FiWVn5qzahoqk/9TQ1kDaNTpmjRIs+d2ee/b4Xcjlhq3Vlrpz/1UOaPlheUfmSEtHO+2s3rMsEAAAAIAUa7j+1PBhcUVFZtWfC0ce++Kkr5x+840e/jmbr9CG9Lr2+K+YvfF1TFBQIVVRVr3bexzQCISAjlLDtqKio+oEStk3vOuEFJWzv+vl90WzdGl5JIK0h8/FPX/mqpg5WVlX9paKq6puGkW4AAAAARkBLcSBwU1Wo+r8CgdLXwnVj9p165tm7//6zV796y4o7o2s3bB7VhWj1fHreT3z26oOnv+e9e/R69LpC1dVby8rKlxAIAVmnN2FbUlr6r87ndFtxSckb9Uc0vPie975vz+Wf//JBTSPq7nloVPsRjUrRdEElUk4+7YzdVdXVB5QEqqmt/b3T3/2D83on02wAAAAA0iliYgvBLqyoqPyZE5TsULDUeMxxu6d+8MO7Pz13/r65X7oheuOtK3qLtjpW0RSjX/z2j2+vxXDtV2/qHW2iq9i6XcGV7qcrx+7f6nEuv+qL+89r/9CLE46OvKgkSnV1zROVVdU/d55/gX0dEZoEyDnaWWeGUzqrQqF/d8rO0tKy14+JHLfnwumXvqjPvbY3Hqgf8a6tlKgfueKa66OfuvLavedMbd8zvvGYF9RfOf3IY07/9WPn+eeb2Ag31k8BAAAAkHGaejPFKbMVLDllkVO6amrrfhCsqNhUEw4/pK1bKyorn1Ng4/wuWlRU9Ff9W1xc/EZFZdVzTnmyNlz3n859/m9tbXit/t4+jh5P66U0G6b4APksZPuROfZzv1j9gPoD9SPqH2L9SNXb/YjTf7ylf0sCgYPqX9SPaPSJ+hH1P7Yf6bRlpu1H2HYdAAAAQF7R1ettTllKwANgkGbZolFsSsQy+gQAAABAwQo7Zb0tYaoDwAA0wkUjUraa2NooTU5Z5pS9TllpWC8FAAAAQIHSqBWNXtEolklUB4AENK1nu4klUUK+3yk5q1Esu0wsWdtOdQEAAAAoRBriv5ugCEAcc23/0DHA/YK2L9liYqNbZhnWawIAAABQYLSV8k6nzKMqAJjYiJRupzxoYlOABmOqU9aZ2GiWhU6ppzoBAAAAFIpGE7vqrHUVWOgWKFxKtu4ww1/0WtMNNZVI67IsN0w/BAAAAFAgtJ6CtmTeaNgFBChE7vop00bwMdWXdNrH1WiYNqoZAAAAQCFQIKRpQs1UBVAQlADZYGKJ1cY0PYfWYJltYmuyaJTcTMMoOQAAAAB5boaJXWmeTlUAeU1rpCiZqqTqaCU7NDJmg+1jNFqGLeEBAAAA5K1mT9AFIL8okbLYfsanZrCP0TpP2pFIa7w00SwAAAAA8pGmC2xyyhoTW5MFQO6LmNgUoPUmO3bzUT+zyMSSLFqXpZUmAgAAAJBvdIVbV5e1TkIj1QHkNE31UxJjfha+Nq3LMtcp201sG+gOw7osAAAAAPKMgjFNIWihKoCco8SFpt5om+UpOfB6lQTqsa93nmFdFgAAAAB5pN0pe50yi6oAcobWMtHIM03vy7UkRbN93e66LBGaEwAAAEA+mOSUbU5ZYhiyD2Q7bXmsxMScHH8fjbbP0XtZa3Jj9A0AAAAAJKWr39pKVQtistAtkH30udRaSVudMjnP3pemCWldFi3Kq+lDJHkBAAAA5CwFNBqmr1Esk6gOIGs028/lSpO/yU/1PzNMbDczJVrmGRK9AAAAAHLYbBMbqj+VqgAybo79PHYU0HvWIttr7ftebGJbOwMAAABAzmk1sZ2E5lIVQEZoql63iW1h3FSgdRAxsdF0WnR7tYmN4AEAAACAnAtstL6DpiKwBgIwejRyQ1sWL+Wz10uJJnfreG3nPJ0qAQAAAJBLtOZBtw1oGJoPpN8Cp+xyyjSq4jBKNGl6lEbzaA0aTZkKUi0AAAAAcsUiE7uSPpmqANJCyUvt1qUdcxqpjgG1mVjid7ftn0j+AgAAAMgJumKsK+oMyQdGlhaP1pSXTsM0oMHSejTLTGxdFm1VTQIYAAAAQNabYoPAhVQFMGxKpGg3HI0KY3eu4dG6LO6UKo0AaqdKAAAAAGQzDb/f5JQ1JrYmC4DB09SfjTYRUE91jBglrGY5ZYuJLcitreVZlwUAAABAVlKwoiH4DxrWhwAGS1PrtFbIfKoirTQaaJ2JjWbRaDuSWAAAAACykobha5pQC1UBDEhJSW2vrGlAU6iOUTPJKctNbF2W5fZnAAAAAMgqWttAV+FnUhVAQlp4VVNVNJ0uTHVkhKY0atFgjWTRiJY2qgQAAABANtGV4O0mtjgnu50A/SnxqATkHKoiK2gEkdZi0ZosW2z70G8BAAAAyApaz2CDiV0RZqFbIPY56LJBPFsEZ6d2229pNIumOTKqCAAAAEDG6eqv1jTYZmLTIIBC1Ww/BysNycZcaS8lwrQuy1L6LwAAAADZQEPudSV4KlWBAqTpP5oG1EFV5Byty7LI9l/dTmmlSgAAAABkUpsNUFhnAoUibANyrePByIfcpnVZ5prYWlLacl6JMtZlAQAAAJARERNbb2IlgQnynLYj1xbLSznW8850p/TY9p1nWJcFAAAAQAZovYl1NjippzqQh7QQ6i4bhCN/aV2W1SY25UtJtAhVAgAAAGC0aR0DXfll1xTkC63Psd4pG53SSHUUDLX1EhNLsqx1yhSqBAAAAMBommliV/inURXIcVqseaeJJQ2ZBlSYNCpP04S0LosSbNM5FgAAAACMFl3lVYJlIVWBHKTgebGJJVbYDQvuMaHEyiYTS7Qo4cL22wAAAADSrsEGIlq/IEh1IEdoOohGKGgqEOsHIR4tbKypQpoytNj2dQAAAACQNkqqKLnyIAEIcsB0GzAvoCqQgoiJLXq72/ZzzVQJAAAAgHTS9CBNsWBRSGSjoA2Sd3CMYgi0bfN828dpxzR2lAIAAACQNlrgVld4Z1IVyCJNTtliYtM8wlQHhkHrsnSY2Ei9bU6ZY5gSCQAAACANtEWzFoNk9xVkAyX6dtsgGBhJrU7ptseX+jumRQIAAAAYUVokVEPn1xl220Bm6LjrcspWwzoZSC+NjFrmlL32mON4AwAAADBiNGpluQ1um6gOjCIFt9tsoEtyD6NFU860ULK2qNdOVO1UCQAAAICRMscGG21UBUbpeNM0jQ6qAhmixPIsE1vnR8nl2YZ1WQAAAACMgDYTS7Cw7gXSRaMGum1Ay0gpZIupJjY9Uv1fp4lNmQQAAACAIVPAq6u4mirEQrcYSS0mtsXyUo4tZKlJtu/ba/+dRJUAAAAAGCqtf6GruBsMV3AxMtw1LqZTFcgB2lGo0x6z6gunUiUAAAAAhkIjCxab2HbNXL3FcIJULRq60SmNVAdyjNZg0VosGs2nqWwzDaOuAAAAAAyBggktPDqNqsAg6Wr/TqcsIiBFHtCuQhrNp9EsGokVpkoAAP10dXXNoxaoD9oCtAVtkUSLDZIX0AJIgTvqSccM0ymQb7SFuLYP17osywwLMwMA3JP0VatWHbrjjjt2UGKF+qAtKLRFlpc9GfrK0PSOB52y2rBdKRLT1B9NAdJUINbrQT5Tn6hRWRrJoh2wWqkSAChwOlmnFqgP2gK0BW2RAi10q+TKJhtYAF5arFZTyBjhhEKiZPNcE1ufSgnoDsM0OADgRB3UB20B2oK2SMFCE7taO4UWgQ0ktb3yDo4JFDglGHtMbEqcpnCyLgsAcKJOfYC2AG1BWySlBW6VYJlJqxQ0rTehXVTWEkgCb9O6LBrlp5FcSjxGqBIA4ESd+gBtAdqCtkhksomNVlhEyxSkDhs8zqEqgLg0fXKJ/ZwoAdlClQAAJ+rUB2gL2gK0RTxatFTD4LWgY4gWKghqZ+2WstXErtADGPgzo2lCWpdFCz5r+hDrsgAAJ+rUB2gL2gK0RT8KElbaYDtCK+W1ZtvOXYZkGjCUvlKJFSVYlGiZx+cIADhRpz5AW9AWoC38tGOGFnJso6Xykqb/aHpDB1UBDJumCK21nylNHWIHNgDgRJ36AG1BW4C2eNtUGyzMprXyRtgGgVq4tonqAEZUxMQWvVW/qUVwE021q6eqAIATdeoDtAVtgcJqCwXg25yyzLCuQK7T1so7bPBHWwLpoySmpglp9J/WsZru+Z0SK884ZRLVBACcqFMfoC1oCxRWW2gdgfVO2WDYojdXLTCx7banUxXAqFESU1PvHjSxdVk0He8ap7zhlOcNCRYA4ES9gOpDc2YjOfplXp9NjzsCbRExuTmHOZSmYDQ41McdZluEbVsEs+hYj6RYF/n4uRjtul5sAwQCgtyhY1OJMS262Uh1ABnTamI7sT3nlKhTDhoSLACQ18kE6iNmpokN5VTRY2ju7JwReEkR+4U6FI32i3hRCvftdMqMYSYE1pnYVU7VgfdK54ahnKAPsS0UzC209b/Dvh4FdtNGoC3aTGyo7mB02vZzy16nLDfJh9frRGok1jXo8L3esP05MEptoekEm+x73mH/1Y4yI5Fk2WEGv2iqG+h7X48CyGQJuGVmeIuzTjaxq4877bG4wPNaeswQkl052mfPsp/Jdr5lst5Ue7wuMkwDArKBkp1vmdjIlUNO+av9/iLBAgB5lEygPvoHsbtsMOkNLHePQFAfMUNPrijJsNa+tmQnyU02CB6OpTYQNfYLf68naNXJetcotcVS+168yQklevab4Y9iaTNDS650+dpT25gmSrxNH0pdxUkizLUnYT1xjol5o9AWEXsMeBc1VSJBV8KXjMBHdSjJlWX2+d3jQEmeNSaW/IunOcnvUrXNJhaMfV59Fls8/cbSAuqzW2zQviDHgpqptg1n289z72e6KlRzd0Vl5f+tqa39fUVl1ZPBispnq0Kh3fq3sqrq8d7bq6r+Q/czsaSi+7ezbGkz2TVdKmATKjvtewaQmT6n3d/nFJeUfK+2NrxWfU5tuO4/1ec4/czz6nPKgxW71Oc4ZbP6nLJg8M4EfU6rYYomAJBcyYH6UAA1M87tMzzJlQX2y22Dva9Geiy2we96Gwx7kx1rPLdHfQF+t32cuSkEoK022TBjgKBzri+oXGufoyPFYH+n6b/CfbcnqHRfS2Oa26LeJhTiXc2Z53l9S2x9bLD1o0TActsW60z/q+tT7W16P/N9yYqZto3WJanfzjj1t9omOeLZZF+T//nX2WMplcB0gW2/hXGSK/W2rdL9uVhu36ffJFuPMt0eI92eJMMcW6c9tp1C9vaQ/bnHvi/vdr8RW8fu34QHcWzU2zaKl3xc7ftcT7H1ut62RSpJIv9jr/N8LgI22RIehT4qW6gPeNC2VzaNigjY/kHtvaQ2HP6PsvKKvcGKylfedcLJu89rv/jZaX/T8fKnrrx27xXXXB+98dYVveXba9ZFV97zy2h3z0PRX/z2j9FfbX6099+1Gzb33n776u7e+3V+4/bonGuue0t/r8fR4zW964QXysqDB53neKG6utY9djvs6whkoF022mObHUmA9Ava75RZ5RUV/1JbN+a35eXB/RWVla9OPmXKngsuumTPhy+97OXLr/ri/qH2OZ+Zt+B19TkfuPgjL7W1f2jXscc1PV9WVv6qEsDOc/3CnoPq3GUyzQEAJFeyqT6iKQRIPabvKnazTZ4st4kUBdN77e0hG3DNsoHgOk9ypdUTVLq/SxRs6z7bPQHrhgESI27QqfexO8HzD1QHIc/PS21g6VqZQjJouG0x3SZxBrLDE+Q2mL4F4yI2uDlo30uzrYup9v/bPMmKOTYR0mxPkLaZ+FMeOm3Q4l45WmjvG4lz3wZ7HHiD+V2e599qUhs54067mZXg/tpOtSXNbbHNDDzNrNO+3zk2WTHHBt6T7bHX40lCrfV8XtypVm32eN3pab9Ftr79ptq6HEywvd/zuW60x8IMz2sbbJ1Mto/pbftue8wVUp8dsv3fJpO5NZH0vLMrKkPd1TU1j5UEAocaxje+eO4FH3zxmoX/69C3vvvD6L0PPRbd8tT+tBcFR3o+Pe85U9v36HUUl5S8UVVdvaOiovLH9thO57on003/KWsARp6+u+bX1o3591B19dPqc44+9h0vtV88Y9+XvnZzb1Kk5w9PjEqfo2TM0u/cHZ3zheteeU/rec+NrR+3R31ORVXof+yol5mGES4AQHIlw8kVrzU2+OoxfVfke3zJhck2yAjY/2+1QdYMX3AY8Ty+rvYusbdFbDCfaBRClycwDduEQbwRHfW+1z/LJh6MJ6iMDqEOOn3JlQU2wZLOtphl+k9vavC0Q4/pGzGww5NcCHj+H7L/j9r61VWdZZ7Hm+FJVmy1j+e2xUIbKMdLIGy37dFl77PDxB92P9UmF1zLfHU4wwxuWlKi5MoaM8j1gIbQFv5pOwt8beHWTbfvWGv0HPerbZ2F4yTv3Mefaess4inx5qLPGGQyJGKTKa75pv8IpOZBPt4kG8D6632xLYXYZ3eaw0e8pT24qa4NP1xRWfXq1Iumv3zTbd+J3r3+gejvH987KkFNqkWvR69Lr++iSy7tHUFTXV3ziO1nhnuVOezp+5ba43gK3/7AiGupqKq6uaY2/FS4bswrH/372a/dsuLO3lEm2dTfqGzevjt618/vi95w87+8pYSLRrhoCpJJf3IXAEgmUB9xEwveNT5abOC32BNIeoN70dXCbfbE1g243dENXQkSF+7ol544gapXyCZTor6yJEEQGfUFPF0DJE7iOWT6DydfafpPfYn3vka6LdwRQO6Q+qBthzb73J2ewDziC/x32rpd7UmudPmSG22e+t5tEzk9cRJpZoD6nJkgMPcnQ7p8x0zbCCVX/O8rHW2hupnrSy7o9Xd4jid/3bgjQtQWG+xjdNm28I866bGP12l/5/9M+AN2/bzfxJ9u0W4OX2S3zddG/mRhZBDJFXfE2awUj49C6rPdURMdaXr8KWVlwcWhmtona8N1Bz562acPalh9tiVTUkm23PGjX0c//qnPHRhbf+S+yqqqv5SWlruLLQ9mCpESM8845QwTG8G21nCFGhgp+h5pr6mt+77zGX3xmMhx+y6/6ouHlLTIpf7GTbZodEv7xTNeUHK3KlT9X/acjkV0AYDkStrrY12CAGl2guRKwCY/vFcLH7S/n276j17wJj+6fAmLetN/Vx6XrjRsjBNA7o0TRIZ9yZMO038K0aQUkytbTP+RCnq/03wJjOVpbouADWJnx/nd4gTJlWZbL42ekyM3uaIpJslGrkzz1VNrisHzdNN/+o/LP3JliS8hNnOEkitrTfpHrsyzdRTy3d6UJLmyzvQfxbHE9I1cOeQLAreZvpErPXGSV6E4r2l7nCB+iv0s+teZiJj+I1eUKOr2JUxSqZN2+zhtCX5fyCNXvImvHWaQCb8kwmVlwU4FN+OOmvByrgY3yYrWW7hi/sLXe9dtKSt/2SZaIgPUiz4Tj5vYTiNPmpHZzQ6AMZPr6sbcrTWUTj7tzJc0zUdTb/Klv3GTu5f+/eX7w3Vj9mkxXfsdH6TpAYDkSjrqI2KD+nU2sJtm+rZ8XZggueLupBKxQcUh+/ugDQLdKwTdpv+aK7ttcK4rkOsTJCw2JUgw7DDxr57vMH1DzYM2cF1i38fGFJMrc03fGiRz7GN6v3hXj0JA79aRu93xdJsQ0XPv9ySivMmVSTa4brX/77Jt0WTLLvsYU0z/NU/m2npqtWVbgvcXb82VHQkC6nrTf3RFxPRNJXFHu4xEcmWbGeQ0gCEmujbYOptrE0fz7bHdkyC50m36RqrMsMe6+/uVNik0yfN5aTN9a664n5dF9jnjXc2fZo+NTvu3c2z9JloLyLvjVdjW/0L72rakkFwJed7DLE9p8iWUOuize+t5oz0GQp7bBvUYtXV1N+sq67SP/N3rSkDkU0Il2ZotWvRS7zsYrLjLJJ5mpbUUXrb9+Rsm/iLsAAZxvhGuG/ub6prag1/s/Ppbo7VmSqaLktUt55z/khb9Li4tvcYw+g0ASK6koT705TLP9O3ks8R3krvA9B/Z0GLv6y6s6q63Io02OeDuStLlSx64OwktiBNEhk3f1X6/mSb+NrxLfLe7O6gstc9/KMU6mGtfV5cvgHQTGg2j1BaNNsh2d9npNP3nDC8x/UcqdNj7qV7bbb2667BMsbevtfW3wFef3Z6kWjzu1spuWWLijzYyniSc9ziZZPpGN8waZHKl1Ry+SGWjGfxCrENti4Ct29X2da/0vffpviRgg62jDTaJ0Wr6RjMETN/uRwtsmeRJQi0zfVOzkh1nzZ77rjbJt0rv8rVro+dz0Z5CPU7ytb1bWj2JzF0m/iibQuyzA/YY2WKTcc+Y1K6MNoTH1K8sD1a89rFPf+6Qkg2FEOD4y/2PPB299qv/9GpVdfWBYGXVetN/tJT6DiWRXzOx0Ss67vYQFAFDMj1cN2bLEeOOOqBdeTSFphD7HCWwtSBvWXlwf1lZcBH9CQCQXKE++oLaBz3JhG5P0mam6T9VZUgnImaQ60oUcFtMM31bGM+2SSJvUmjZMB+/0wxy16YCbotmTzKr3XcMzzX9F34eilkmte2cC60tdCVUo4Y0uuKLSe7XVH/kuJ9UVlUd/MRnr35rtHb3yYW1Ev7xluVvaG2WYEWl+u7PO+WATVZp96H5NnlFIASkTudEs2pqw48fe9w7D2g9klxbuyld5Wf3Pxy95G8/8YoWwa2sDP2rydwucABAMoH6yBoKumfYEwgF95q+oWk+mkLSYoPLngRloC08Nwzly7aA20LJLY38qbeJra22bLT1uCBJW7QnedywvU+AtkiZu2ho0CZTtnvaZJLpG00Ur8wa4ES9ZygBbgG0xR2mbxHufebw0SuBcUdN+KeqUOi1K665vnfEBgFO/HLryjVvNoxv3FdaVvY7M/CaLADiaw5VV28/6dQzDqy855f0LQmKEtwdn5zzWnmw4kBJaelnOGwAkExAIddHwPSfKqOgrzENj0tbDCzoC7obhlqHPiEzyCkotEXcz0XDCLUxn4vDKQGgqStPmdi0lbeMb5em+nENj5x25tkFO/1nKItRXr3gHw+UlQVfHCDhB8DX/5eVVSzQVLsbb11Bf5Ji0VbTGt1TXVPzyxE6dwEAkgnUB2gL2gK0xRAoeaW1erTu1BNOUVIgWD9u3Ge0cOS1X72JAGYI5e71D0THH33snrKy8l8R8AADimj74ZNPO+OVfNr5ZzSTupddftUboerqF0zyEbUAwIk69QHagrYAbTFKJjZMaPzdO5omvqEEAYHL8AKeT3z26r2lpWUaFTSDTxNwuOLS0s9r962v3HjLW/QbwyuaRlU3tv5geMxYrVnG1s0AOFGnPkBbgLagLTKSVTnhhDNrasP7Z86eW7A7cqSj/NtPfhMdWz9uT3FJyffMENZgAvJUqCoUuu9dJ5x0oFC2ch+tnczeP+2S10M1tU+akZluDgCcqFMfoC1oC9AWKUc5Y8acGB4z9tVbVtxJgJKmXYVOPOX0XUVFRT8kwQKYUEVl1e8v/ujHX2UXoPSUL33t5miouka7lrGbEABO1KkP0Ba0BWiL0TChqalR66uwiGR6ywPbno0eP3HS806Vr+SThQIWCAYrftP2/osOklhJb5lzzXVv2REsIQ47AJyoUx+gLWgL0Bbp1XBkw/h9uspJMDI6CZZj39Gkq8lL+XShEBMrFZVV6845/8KXSayMTvn4p698a+wR47aRYAHAiTr1AdqCtgBtkT6hhvGNz3/m6i8ThJBgAUis5Gm5cPqlh8aMrf+dYUoiAE7UqQ/QFrQFaIuRD3SOiRz/tBavJfjITIJlzBFHatvURXzKUAhKy8rWnHjK6SRWMrRz2fkXXnxo3PgJ93IkAuBEnfoAbUFbgLYYQa0XXLh4ylnnEHhksNz70GPRkkBgr9McTXzSkOfa6sbW71VSkc9+5hIsRzUe+0awqmoqhyMATtSpD9AWtAVoi5ERrK0b84a2CCboyGz55BVf+LPTHt180pDPysuD//31ZXe8wWc+s+Xrt383Oqb+iJ0ckQDyQldX17xVq1Yd0sk6JVaoD9qCQltkedmTb99F7z3vA987r/1DBBtZskVzsKLyWadZWjlLQp6aeezx79zN5z07StO7TnijYcKET3BYAsgLXJGmPmgL0Ba0RaZMPP30+pra8Js/u/9hAo0sKQtvuu2JoqKi3/FpQx4KlpWVP3PHj37NZz1Lysp7fhkN143RRQMWtwXAiTr1AdqCtgBtMVTvbfvA+g9fOpMgI8tKXf0RjzvN08EnDnlmQcs55z3PZzy7yunvee9bE44+9loOTwCcqFMfoC1oC9AWQxOsqKz8qxZSTcf0lq8s+mb0Pa3nRcc3HhM9OnJc9IKLLum9SpqO4KD9wx+N3r66e1B/c9Nt34l+6spr+922dsPm6N99ck70XSee3Pu6Tzj5tKi2pu75wxNv36e756Ho2W3vj6Zzl5Nl3/3RLqd9tvCJQz4pCQT2Z3KUnPoIfb6VUNa/3/ruDxPeV7+74prro/5Fd9WH6fZkJdlruPHWFf36wV9tfrT3b/SaVNRv3v/I02//Xv//xJx5ae1v7vr5fdHacN1LHKEAOFGnPkBb0BagLYbgwukzLlISYaRP1JWI0ONW19T2BgUKJjq/cXtU67o4TxtduPi2EX9OJUL0PIN5jWOPGNcb2Li33bLiTu3WEz31jLN6Axw93twv3dD72JHjJ/ZLsCiZ86Wv3ZzWnTyKiopeUwKMTx3yxKSa2nDG1lpR4kKf73OnXtj7f/2rn5X0jXf/cUdNiJaVBw/rr9QvaGc1t6hPUx/hvS3Ra1BiVo+r5LN+1iLilVVVWvek9zVN+8jf9fZLKt4kVLr7GxXndRxy3kuYwxQAJ+rUB2gL2gK0xSBd/NGPL9FJezpGkfgTF27RKBAFLCO9BetgkyszZ8+NfvSy2W//rEBGr0tXs+Ntkaz3o0SRd4SLkkfeK8wjXaqrax5zmmkKnzrkiRknn3bmk5lIrOjzqiSIf6SKRrIkul39gT7zAyWg9fcDjVZxixI63iSJErm6zTsqRX2jki3eRcbVP6W7vznxlNOVXGnhMAXAiTr1AdqCtgBtMUhnv2/qfVdfd+OInqAroaKrwYlGpyg4UCDiTkVSIkYjRhTAKKBQEPGL3/6x9wquphIpaXLSaWf0bhnqDT6UHNHvNaJESRV/ckVTfjSlR7crgPn2mnX9/l6Bk3dRTT1eeMzYt68o+4teo4r3Nr1mjXBJY7Cz2Wmm2XzqkCcWXXb5Vc9katFWJUE0ciReotXbP7j9kpIbblIm2Tb1qSZX9Fjqd7wJEvVPev54/Y3/MdWPjXR/7S1KNh9zXNMNHKYAOFGnPkBb0BagLQbppNPO/EuyNQeGUpQEUbARb9RKohEnSmoowFBRckNJE13NVfJDawH8zcdm9SZs3MdU4KOkil67giYlX/R7N7mixI6G2msqkoKpa796U29Q4wZQeo36vfdqsRIlgx3Fo6vayaYADLfMvPyqTU5dLuVThzzRfevK77+eieSKEqoafaYErvoFJXCTTRlUf+EmU9W/KNk73OSK1nfy9xcaKafn0u+UwEm2rooSK+mYxukWJYrfOenEdRymADhRpz5AW9AWoC0G6ciG8a8nCzKGUrRGiYINf2Cj270LProLOiq5ouSJdwqOkize5Iyu9Oox9Td6vfq/90qze5ubXFGyRgkV72vQc7iBjR5fAZM/yaMpS97blNxJtlClRscoMEpXsHNb1w8edd5XD5865INAoOzpke5vBlOUaNUC2+orjF0nRaM1/KNZlGTwjmJTslafc++aS0NJrmjkiX+UipIpStIq2avH0fNosWz1LfEW49V90jU1SP1r4zGRP3OkAuBEnfoAbUFbgLYYJI32SMfVTwUA3jVVlDDxLvaoAMINRhTg+KfWKOBQ8kRrE+jKrhIhbnJFV5P1f//0HXdakJtoUYDi7r6hosdQAOMubOldzyBekse/cKVGyviTRu5Ug1RH6Qy2rN/03887j89nH3mhqKjozWzYdlj9kUavKbGi0SzqF7xTBDU6RIvcqi9RuXv9A70j4/wJ28EmV9THJHoM9XnuLkRuf+ddE8pdd0W3azRfOupF/Vh4zNiXOVIBcKJOfYC2oC1AWwxSbd2YN0Z6G2YNbVcAkGxbZAUZ3uSKd60UJWUU3OjKsQIc3W/pd+5+O7miK7r+JEe85IoSJYm2SFVyxT8FSM+lKQPJtk9NlFxJ19X4Fd9ft9V5/E186pAPiktKnk/Htu+pFCVI4q234vY3Ssa6WxIbO7LFXzRdcTjJFSWVvX2dRqCoD4k3FUiJZX/f4vZt6drOXn33uKMmPMGRCoATdeoDtAVtAdpikE445bS/JEuCDLUoSaGrr/GCBt2mrUgTJVc0BF8BhDcIU1DkBhUKkozv6q1Gsejqsx5HwZKuMvuH1bujXtyFG/1rH2j9Fj1uvOH4KlqnwZ9ccUfRJFsnYTjlE5+9eqPz+Mv41CFPrLtt1T0HM5Fc0Wdeo88SrZ3krmWikXLqkxJNyYnXX5pBjFzR9Ej3ZzeR4x014+/zvP2c2/fFSxKNRFHfe/zEd/+SwxRAoZ6oRwZx30Yz9L3rQ06pT/G+Qfu6AgUUuKhuGlK4X8Mg6pEgcmgGU8ehYXwmaIvU+qfQAPcJ2PsF+Vxkxpnvbbs/0TD14RQFBEp2KMGiUSfu8HolLhTEKPnh7v7jT664SQw3gNDVXU3hMZ51VrQLkK4063fumgXGs+aKRqXoKrOG0bvD6ZXQcaf9KIjQyBj/69ailXptWlxSO3u4UwL0s96P/8q1AqV0LjB5yunvUXJlLmdKyBNLZl81f2cmkitKYBg71ca7ZolGa6gvUHJESVptd5woUaI+xD+dcDDJFS3S7Z96qISPijeJ4vZ5ej5v4lbJXI1+SVcyV4mlIxsm/AOHKYBCTa5EU7iPgkcNKX7QKTudsnAIzzPLKV0p3G+qU3Y5ZaN9rpYCCFyWmNh8+C1OWZ8gSFQAqdXXt9n7rcuVYDKH2iJo63+LbY8lKfyNFonsJKAfcY32WN9k+4M5Ce7XYttK7bDdKTNpi9F3wUXTb9UUmXQtHqlgQskK+33V+3/d5g0k4k0LctdlcXcS0i4Z+r+7DamSHkqwKOGh3yvRokDEfRw9hqb5GLtopf7Vz+46MFpbwCS4Aqz1X/RYxjMdwB1p411HRkWv078I7kiW6pqaR4f6XQpkoY5TTn/PnzO11oq7MK36IfULWm/F7RuUWHF3OnOTsv6iPsC7a9lgkyua6uNP0KoPUoJWj6HXo9el51Cf4x/RouSHO30pHeW0M88+5LyONg5TAIWaXImkGPy7Q4pDNtiZnKbkijehMt0GuvkcuLTaINIdpbPGKQvi3E/B5QbPzxuSBJwEkUMz3ylrPcf51gFOEHT/vSRX0mKtrV830bLbxB/Zpf5hhqcvO2gGHulCW4ywM885r11JinRvgapkioo/OZGsuKNG/AvX+hd4TBQIuVuq6nnj7fKhK8PJEiMKoNzdiRItiqlALZ27nxQVFR3Ilc8FkILJdWPr/5LJxWzVB2k0nRKxKt4Eq/oSjWRJ9LfuGin+dWOS9RPx+gyNiou33on7mjT1KF6/p4SLO7UxHSVUXfOGybER1gAwkifqqWzPuNUmAVzLEiQA4gWf7tXn5SkkV5pt4sZrrxnc1KVcC1yUuFrs+XmaiY3a8au3Qaar2ynzCCJH1Aab0HN1msTrFOhY1UiuRSRX0mK/73OvkVod8U6yTd8ILo2wO2RyZJpWnq1/E6qorPxrurb2zOaixI2uFCdL3iQrSsyka9SPynfW/vIJExvVBeSLQHFx8euZWtQ2G4q2YtYIlMH+nRJCmj6UrilBSjJVVVcf4BAFUMjJlVSmBR30BToKJlcO8DczbGKl0ZbtKSRXpsVJ9uh9teVx4KI6me35eYpJvmWm6mKNDey5Qj+y/MeaRlutjXO/oK3/ZvtZILky8qJxPifJ6rnT9jHzaIvMOPHk036jNUsKMdBRkDOUNWcUHGp4f7wRMSNVjmwY/7DJkVGOwCAsbnv/tCcKNbmiRLam/gx2+3aNMEzH4uOekXxv1ITDX+PwBEByZeD7+JMrAyVKFJR6F9Cbm8LfzCzQ5Mosz89NAyRXWjyJK6YFpT+5siHO/TSaZb7ns0ByJfPJlWn29zvMEEa60RbDN6GpqbGqKvRmIV5N1lXgobxvTS1IZ2JlyYp/22b6TzsF8kW4pCSwe+2vf/dmoSZYNGou3tSgZAkZ7WaWztdTUVX1ssmxxeUBIBPJFa2DMsnzs6ZCDLTYZ48vaZDKmisKbLfECXib8zhwWekJ1N062JbC3+l+2/P82BxtW3zJlXlxjllNQ9nvSar0xDnWaYuRSa54R2atNqmNStF0uQW0RWac1Hz699M5xYUyuIRPZVXV4zbxCOSjuZMmn7KTz3t2lFOmtLxWWRm6gsMSAMmVgWkHFe8uHLqa3zHA32iNFe9aIgtSSK6EbeDqZr21zshBM4QseA4FLhrRs8YX0K+Oc79FvuByWopJGILI1HX5El1d5vDtSxtsIsUt3ba00xYjStOuvOs8bfP9LLoav930X+i229eGtMXoCmsxw3i751BGt1z15Rv+06S2phqQqwLFJSWPr7jrp6/zmc9s0fb2oVD1s4ZRcgBIrqSUXNH2yBq9Mt0mSbZ7Eh5LTfyr9hrposVpZ9vf7zKp7Ra03AZIU21SZ3GeBy5hW7fzbMLKu1tSu61fY2/bbevSnRbEaImR5S6o3GGTKjtN3+KoC0z8ERFMC0qPWfYY12dAo+Q2eX63xpPMWmn7CfUXC2371dMWmTPxhJO+qR10CDgyupPJIU2ZMLE1vIB8NuOIcUftStcCrZTUyjuOn/hqWUXF33I4AiC5knpg2Gr6RqN4rxTPN4mH4U+2yYHFNviZnsLzBEzf+iyzzRCz4DkWuERsHS0z/a/ON/sSKFPsfZbb+iSgH3ktto6XmP5rd0xPcPy2mSGsCURbpGSaTZ50mv47AM0zfVMFA7afcNdkaaAtMi5YGx7z7Je+djNBR4amA004+tjtZuBF54G8EAgEfnPuBR98js9/ZsrffuLyA5VVVZs5EgGQXBkZC0zfSAvqA7QFbQHaoqE2XPfSwsW3EXyMcmLlnZNO/IOJLSjP8HwUilAgEPjthy+d+Qz9wOiWWXO+8HqoulqjTEMchgA4Ue+jIfY9CcpAi0MOtkNdkOS52rOkPkAQSVuAthieSTW14f23rLiTIGSUEisnnnzaNhIrKOQEy9987JMv0B+MTrn2q4tfC1ZUPmFyaMQoAHCiTn3QFqAtaIucTbCUByteu311N8FImhMrk089409Ofa8jsYJCTrCUlpb9YcbHP7WHfiG95Yab/+Wt8vLg8yRWAHCiTn2AtqAtQFuMntbqmtqDd/zo1wQlaSpnnHXOH5163mgYmg80lJSUbp91xRd20zekpyxZsfrNYEXlCya2cQUAcKJOfYC2oC1AW4yWYFXVVOdk/JUvdn79LYKTkSu/eOCPbzYeE/lzUVHRvSRWgL4ES2lp2SNnvvd9u3r+8AR9xQiOkLvs8rkv2xErkznMAHCiTn2AtqAtQFtkRiRUXb21+YyWA7/a/CjByjDLF2+4+amSQGCvie3Yx1QgoL+gU5YEK6v23bbqnoP0GcMr3T0PRccffeyesrLyXzn1Ws/hBYATdeoDtAVtQVvQFpkVKCsLdlaFal5hoduhlV9tfvTQxBNOeqyouPhhw7B8YCAtgUDZ0+dfePHz9z/yNH3IEMr8zq/vLyuvUCJ3DocTAE7UqQ/QFqAtaIvsMqWisurJCz986YEHtj1LAJNi+adv3fFcaWnZHqf+Og2jVYBUhYpLSm6vrql9ceU9v3iTviS1cu9Dj0VPmdLybKC09EGnDps4jABwok59gLYAbUFbZGnAU1lZdUd4zNiX//GW5W9oPj8BTfxy9y8feF2jVYqLi/9HiSk+PcCQtAcCpc+2tX9o18/uf5i+JUHZvH13dN51N+4tr6h8yamzRYZELgBO1EF90BagLWiLnNBWVhZ8oG5s/d4vfe3mV3ViT4ATKyvWrNsfaZr4eHFJyVNOPc0zsXUkAAxd2CmdpaXlz5125tl/uXv9A/Q1tmja1GfnfeV5JVWKiop+4tRTM4cLAE7UQX3QFqAtaIvcM6WsrPznlaHQ/i9cv2hfoSZZNIJnyfLVL9YfMe6Z4kDgv5x6mWW4cgyMNCUq5zl9zpPHv+uEXSu+/7M3Czmpctnlc3eWlpbtc+qky7CWEwBwok590BagLWiLvNBcUlr6/fJgxYFPXnHNnkJZhFLJpOtv+udnQ9U1zxWVlNzn1MN0DgUg7ZS4nFlWVv7HhvGNz9+68vuvF8oURa2pctHfdOwoCQT2O3WwzLCuCgBwok590BagLWiLvNRUXFKyKhAoPTBp8ik7r7/p1pd6/vBEXgU3Wsz3a0v+dc+Us87drgDHDsVvpemBjJhWWl7+H2Xlwf3nfeBDTyrRkm8j6H61+dHolfO/+vTRxx6n6YYvOu95qVMaaPr/394dQEmVnwWiv0MX0EAz00k6SUeJaQ1rSJaNxHQM8RC3lVVcceWt+B66qOgj2nGJ4soqWYmyhuOiEsOLbJxZkWkjicSDETcYcUXlGDaZN2c2b8zDLPERg4Yok5CRiSQhkWT73Y/+1/TtS1V1VXU3VHf9fuf8D3TVreq633f71v2++t9bAAVjY2O7jx07disO1o2JIR5yYchFh48nvXs1pS8fW/NxPBoQq77iqz72I3v2fWK+XpAyipsfe/3P/W1cSyV9Ynwqmzj1Z0CqoSOsysdopVL502juvvTlX/exff/p/7oxX5u77zzz37/4va/Z9ZFnDjz7yqKenk/m63Y0H5sy13ACqM+noOIhF8iFXCxwMYV/Yz6O9FQqV+O6JNt2jH7s4d/5b1/s1NOH4nXF6/veH3rdR5/17Od8vFDcbFbcQMeL5u62RYsWvT2aoS/4ytV/+yN73nDtHb//Z+Od+jXy0QT61Xf8189963d814f6Vq58In/tf5Wvw8HMrDgAB+riIRfIhVxQx/p8HLivp+fRvID47PIVfZ+Mryzesu37Lv3CkbHrJ88+elcvRBu/7z8defhT8fvjdSxfseKT8bruu+++/1txA/Pe083dRZXK/5P/bX/hgf5nPrF23fBH44Kwb/q1d9w8de4Dd3WfE7NS3vALv3Ll2/71tr/8yhd+9V8uWdL79+l0n3P52JePtdIG4EBdPOQCuZALWjWUTVwINoqKk3kB9D+jABp4zuDffN2GkQ9/9w+89q9iBsnrD7z5yhsOvuVafNXx0d/+g/E4xeg97//QePn6CvHJdNweBVMs99bjp56Kx8Xj43m27fihSy9/5YYPp+n2n4vfF783H3vT6xiSEljQ4pt14rTF/fk4tXjxko/0VCo3nzP4ZVde/Y2bLn3PD7728g+89sf/KvYbMY6+8/e/0Mo+5z+/7V2fjMf91M/90kfiub7r+15z8aUvf+XF/mc8869j33bfokUfzH/viXzsySZmw7l+CoADdfGQC+RCLpgTcerNcD52pgLoQDbxdaMx4tPdc/fdd99HenoqV/J/P5//PJ7/+6X4N2adpNs/nJY9W3js/jTieinrMqf4ABP60j5nNO0jDpb3OYt6ej5a2ud88el9TqVyJf//xQb7nO1pn+Mr2gEcqIuHXCAXyEXHGsqH3AAAOFBHPOQCuZAL2jSUaa4AADhQRzzkArmQC9o2lGmuAAA4UEc85AK5kAvaNpRprgAAOFBHPOQCuZAL2jaUaa4AADhQRzzkArmQC9o2lGmuAAA4UEc85AK5kAvaNpRprgAAOFBvw0iTy/XmY0M+1rb5ewbzsaaF5XtbXH6+FS7VeK5uc7m+VARUxypFZNsG0t/Bqia24ZEauegv5WJQLmZFX514lwvh8uhf4Pts5lZsQ3IDANCtZnCgPt7EMlF0XsrHqXw8no+jbfyeHfkYa2H5B1tcfj4VLtWD9xP5uJCPg20stycf19P9Mc4rItuyMR9X8nE8/bujznK70v2xTV4sbZsn83G1kIsTcjFja1O8T6R9z746y10ujVv52LvA99ncnf0zAADdaI4P1KPRcSD9v5KKnfUtPkezzZU4sD2ditWF2lw5XigA+9KB/NomlrtSWC6Kzp22zRmLRsnG9P+YIXEtm5gtVBSxv5lNzmyp5mJd4TnWycWsOl3YvvvT/mBomsdsSbnokwtmYCjTXAEA6F4zOFBv5nFRsAwXfj6c1f8kuSqaMEdSERqPj0/3m2mWjKaxM1u4zZUoFIvNlFjPPS0uFzNZNuVjWyk3isjmxek7N0u3xcyskdJt1VOzii6l26qNlziFbXsTDQC5aE6xmRVi1tyOBstHAyYaY+vnyfpprnSuoUxzBQCge83xaUG3SkXj/mz6xkc0Rx5LxWdf+n8rzZJWTyOaT4XLeI14Hqqz3EBpuf2p2I/7Hkkxulrn8YrIxtbXKKLOTVPEV7ftaBhW0nPcSo+L2UTXm3i8XLS+XxpL2349+7MOPh1rnuei2wxlmisAAN1rjpsrtZoB0zU+4pPm0cLPo5nmSqN4HqmzXF9puTg9K5or21NxH2IGxo2s/YsNd2sROZK13lyJ+2I21ppCIbapcH/8/3ohN3IxO/ulRs2V3hTz4Wwe0VzpWHGK3yPCAADQpea4uVK+JsjBrP5FWOsVqa02SxZycyUKweI3oERjZV8Ty8W1b+pdrDOKgc2KyJasSjEux3FTneVjm7+YTf8NT+XmmVy0LmYDFb/1J2al7KqzbFxr5fEu2mczt0bS+xcAAN1ojpsrcb2U0RYL+UPZ1FNVmpntUrSQmyuns6mNpygMN9ZY7mw2MUOlvNyGbPK0lBCzW240UfQrIu8U1+mozkKJYj6aLQM1lovGyvnszq/5HU1/H1XrMjNXZkPEutrkql5Eu95Fg49k0zd75YJmjWSaKwAA3WuOmyvDqQjdnQqZxwvF44l0e9lQNnH6RJzGErMyWv32n4XcXBlJsdmd1rF4IF+MZ73lKqn4rH5jUDS7HlREtiWaIxdTHM9mU0/Pitcd11RZm/5OTqc8VEc0uQbTtn04PdelrIO/xWkeFfSb07Y/mrbz04X7YtvfWvg5/i62ddE+m7nfP2uuAAB0qxkcqDd78c34dH9vKnaK1wGJQnJPnccMpvtiOv+67M5vXGlkdYvLz7fCZW2KZ8Sv+NW/m7Kpn9DH//fVWK435W5/Vv80FkVk88XU/lLBXv3bGEzb4o4aozpTaCBt45En39w0e6rbfsS6OBNoazZ1ltbWlKdu2Wcz9/sDzRUAgG51Dw/U92UdeCFVhYtcIBdyQRtGMs0VAAAH6m3alA4ma429s/xS9zb4XZs6JB4oIuUCuehOI5nmCgCAA3XEQy6QC7mgbSOZ5goAgAN1xEMukAu5oG0jmeYKAIADdcRDLpALuaBtI5nmCgCAA3XEQy6QC7mgbSOZ5goAgAN1xEMukAu5oG0jmeYKAIADdcRDLpALuaBtI5nmCgCAA3XEQy6QC7mgbdvycVwYAAAcqCMecoFcyAXt2ZGPMWGAzjY2NrY7348+GfvSBTIW0rrIgTGT8bv2cDhQFw/kQi6QC80VwH7Ue4IcIA/YEMUDuZAL5KKraa6A/ah1sT0hD9gQEQ+5QC7kghnQXAH7Uetie0Ie6FZx3umxY8duOUdvcoiHXBhy0enndnv30lwBFGEKSjlAHrAhigdyIRfIxUKjuQL2o9bF9oQ8YENEPOQCuZALZkBzBexHrYvtCXnAhoh4yAVyIRfMgOYK2I9aF9sT8oANEfGQC+RCLpgBzRWwH7UutifkARsi4iEXyIVcMAOaK2A/al1sT8gDNkTEQy6QC7lgBjRXwH7UutiekAdsiIiHXCAXcsEMRHPlqDCA/ah1sT0hD9gQEQ+5QC7kgvbsTwOwH7UutifkARsi4iEXyIVc0AbNFbAfnc/rsiGbOLWxOB7Mx7ZZeO6daTSyJh+nZzE0m9M6nMjH9tJ98XvWdUgOKun1ncrHhXw8no/jKR9zLXKyd5plhvJxJr3O2bQjjaKT+Vjv7xo7ZfFALuQCuehumitgPzqf1yUK3fFsanMliupb2cxPeaw+XyOP5GPLLDYNbuRjXxo3SvvnjdlEE6Nyj3PQl49z+biZYhyve1c20fyJXIzO8eYzln5/I3H/tln+vSM1clK9/WK7eXF8hDcY8UAu5AK5WBg0V8B+dD6vS7W5Ujaabh+YYRHfqLkSMzcen6X16M3H9WyiSVG1NZtoYBTX4ZHszpkTdzsHR9JrXVvjvgM1XvNsm665Es2ui7P4+3rT+2Ss140675nn87Hb8RHduFNudYe0uc3fszprfmrccHpda7vkDbeS4hod5f5pdmZb0+h18DNr1qTtbbopjGvrLBf525QOKobkYkbWpxgPtblcf/r7iL+lQbmgDZor4PhiPq9LvebKxnT7qsKxy97UnIjf/Vg+9pQesy3dH4X5wWziNJdGzZXHSgV1zOg4nB5/MT1+dZPrsSG93sHS8dbN9D5fFU2jC/cwB/3pNe2pc3/E4Egp7rsKcT+Z6p5y3M+l+8+k3NXKy6V8HEpxbdRcifv2lV7ToRS3Sy3mpbqNxeNG0nPvr7PMxW7/u6Y7d8qtPG5bnR12s3+IzXy95Wj6YzyQ/nC3L/A/zNjJnk871zgn9kphB1w0mHJ1ovBGtcrBz4xtTdvZgfQms7fBtl9cbnfpTet0OvC4lt5s5KJ1B9OB2cH0d7CpieWuFpZbnR73YPobuZrN4JxfRYHmCuD4Yh43V4YKY3061ixeC+VIes/cmo5b9qbHVU8diePvW6lpsDEdp95qcCw/lB5f/GD0aHq/3pSe42wLBfeO9Ptq1S3FffSa9HvX3KMcbKmx3o0cSceKO1NMIp43Cg2WPYVmzUg61hnPJk+12lrIy0h6/K0GzZXB9Pjh0mt4vJCXM+kYt1kD2eQpP/WaK6vS713XzX/X2CnX05sKlgttNFfiD7CvyeZKb9rBDKWf16YCaSG/4W5Lb3hVB1JhWKugPF74eVc2T74utMNzcaVQgMcb0PW0vdZabrjwhnEjLTecttHqm8zubHYv5NYtuajGvjpza2NW+5OoVTWWe7xwsHCwsKxcoLkCjn27tblSHjeyqTMgDmZ3fojxWGH/d6H0nlpJjY2xBsez5WbIhdIx7VBqKjQz+3pPVvsD4Is19tE3slk4NajNHFTjXalxe3GsS8cwt7I7r30SDYpT6TniGKf8Qd+DhWOix9LP5TjXa65Umz+9pd93tHQMNlrn+Hc65xq8Z17Lpp7W5fiIrtgpN9MsGUx/OL0tNFd6047iUuGPfrrmyvrszo721ayN04Pm0R/mkaz2xbnKTpTeOEay1rrMDn5qF+o3ahxYbKpT0JeX21i4rzpt9VCNNz25mF68+Z8vHcTVOjd8a53l+lMOBjRX0FwBx76aK1NmrqxLxye3sqmza1enQj9OGTmZTV4/oy+bOlui6miDY/l9NZoh1dkwl9Lx7sas+Yucjma1P2C9XGMffXk29tszbK4M1nhN1XErvb7NhWOWomojqToLZ7hBg2Q8u7ORdLhBc2VXanIU7Szk5cH0utq9KHCj5srFdvLi+IhuaK60s3zsKM6mP9ZK+v90zZWtNXYOl7M2TrOYR3+YY6Wd5Nqsdqf+UHrjK75hXXfwMyMbasT6XI03rZFpltuTDkiupOUG5KKtg5PjpduuZHdeU6XWDLirNZZblQ4mNsoFmivg2LcLmyv1it3qe+2BVPQ/kgrsKLirM1eqp5KU30MPNjiW31/n+HVDaqxcTM95IWt8fcGqepciuJrdeX2Te9lcWZfVbkTVen3VdSo3MkbTMsNZ7VOcqtfL6U//bq8R+3rNlb118rI+m7zuynjKTzvHr42aK49prqC5MnvLn0476qqdmiszaq6sSsVmNKlOpX+vOPi5582VDdnktT360wHKKbm4p82VNemxu/1doLkCjn01V552Kb2HrqpTpBebFNdqNDFONziWjwbB9RrH9UM1GhHNXE9xdXbnLI7q6y7XBddm4z1/BjmIGeePZPVnf1xJcR3Oas9MqV6bpto82Vq6f08htnHMs690/4kGzZXtNbaHrdnUC9hG7XEra+86l42aKxHPvY6P0FyZneXPlorUZq650q2nBRV3kvVOCwoxHXBLitP6bPa+7q5bD37qne7T7GlB8eYeUzEPFW6vTqXtk4uW1DstqL/GAcG5BsuNpIOsbf4u0FwBx75d3FwZKY2xdPvmQpOieJy+K91WvUbKoVQcryq8vza6oO36bOq3EWXZ5EyZSqm5MtLkulQvwtubniOaEJdKTYz+Fp9zLnIQzZIbqcGyKR0D9qX/n0mvb2fh+PFM4TgxXvfNbPLaJCfT8f1AofFxtXCsuT8d5wylnzekx9drrlRjvrp0DHu6EMfq6UibZrG50tfuczo+QnOltgPZ1IslHcqav6DtqtIOZSG/4TZ7QdttpSbMkVJR7+CnPa1c0LbWcuXreqzJOvh0rQV+QdvhdMCxwd8Fmivg2LfLmyvlcbnUTDmcmiWPZZNfCXwqFf7V4vh0Ktwvp+Og8w2O5SvpPbg4+6E6u/d6eo54roMtrMua1Ey5np67+OUCVVvTfZV7nINoYpytEffz2dTTq9akmN/IJq/Hcrh0PHS2EPe4/3jh2LSSfq7efy3l7dw0x7o7S82gK6W8HG5zves1Vzaldezt5r9rNFfaWb7eH1V0XC+mnXD1K4ab+SrmXdnkV96W3wgW4h9m8auYD2dTv4p5R2FnOZTui2WOpsJzYIFvm3fD1rSd1foq5uInIduz2l/Z3J9+PplNfn34qFy0pfoVywfStr65sO2PN1iu+qnI+XQQd64wDssFLYrtao8wgOOLeboufdnUi9kONWg8DKXjnFWlxxatTk2S3nTcOTDN+/ipGse5w+n39LexPvH46oztWoV6nBJzqINyMJBNzhZqFKu108SkmpvBOvdX89KXTV7Uv559qWFTjuu6Jl7ndAbrrEPUfEccH9GNO+WRGS4fxWm98xx70/3VKYjNfgf9utRYWHsP4nGvGiwRo22lHdRgNvX74QfSMluyNjrBDn7qWpO2t/U1tvX+Jpar5m9HjYMSuWjN+hpx7K2x36m13PrszmnQ6+SCFpWvgwXYj1qX5hsL17Kpp6DMpeqs10E5aKg/5WXNXc7LkDzQrTvlWl3u6pium7mnxT+egQa/q69D4oEDBrlALrqT5grYj1qX9u3Kpp+pHh/KXp5mrG/idx3NZnGm4QJ/X473tRPTLLO1ibxsbeJ3la8nKQ903U55Q9oR1ho7Z/ml7mzwuzZ0SDxwwCAXyEV30lwB+1HrMjMb5uPv6YL35YhXpdN/j+Mj7JTFA7mQC+RiYdBcAftR62J7Qh6wISIecoFcyAUzoLkC9qPWxfaEPGBDRDzkArmQC2ZAcwXsR62L7Ql5wIaIeMgFciEXzIDmCtiPWhfbE/KADRHxkAvkQi6YAc0VsB+1LrYn5AEbIuIhF8iFXDADmitgP2pdbE/IAzZExEMukAu5YAY0V8B+1LrYnpAHbIiIh1wgF3LBDGiugP2odbE9IQ/YEBEPuUAu5IIZ0FwB+1HrYntCHrAhIh5ygVzIBTNwMh9bhAHsR62L7Ql5wIaIeMgFciEXtOdcPkaEATrb2NjY7mPHjt2KfelCGAtpXeTAmOF40h4ObzB2kIZcyIXh4EFzBdCk1nCXA+QBG6J4IBdygVx0Nc0VsB+1LrYn5AEbIuIhF8iFXDADmitgP2pdbE/IAzZExEMukAu5YAY0V8B+1LrYnpAHbIiIh1wgF3LBDGiugP2odbE9IQ/YEBEPuUAu5IIZ0FwB+1HrYntCHrAhIh5ygVzIBTOguQL2o9bF9oQ8YENEPOQCuZALZkBzBexHrYvtCXnAhoh4yAVyIRfMgOYK2I9aF9sT8oANEfGQC+RCLpgBzRWwH7UutifkARsi4iEXyIVcMAOaK2A/al1sT8gDNkTEQy6QC7lgBh7PxxphgK7Zj+7Ix5YWH7M5H/vzsScfgwv4PWF1Pvamdd3Q4vKbaty/JcW7ONZ5X25oMG1n+9N2N52+fOxMy8e/ldL9G2rkYJPjI5i9DXF/i8vvavP3rGvxzWuwjTe7+fqH2Z/iGm9IQw2W21jaGW5Y4NvmvTCU3sR2pbw02p73pjeuPgX9nBjOx760rVcaLDeSlhudJmdyQTMuT7MfBhbWfjRmq421sPyhfFzPx+F8nE//X9Mh6zKb4pjzZj5OpvjcmqYG2JyWP59iczUfJ0rLXE+3Xy6M3d6X61qd4nU2H0dS/B5ssHwcj17Mx4W0/OWUj+Ix1GP5uFbKwQnHRzB7G+K5FpaNYnK8zd+zo4U3r/60Mxjrgj/M3rQjPJTie7XBm/SFwpvcWCrsFZGz/ya2Nx0YXEz5qXXAcSUdZBxqsJxctG9TesMfTW/6p+sstz8dKIwWDiT65YIZ0FyBhX/s26516Th4uHBbvD+dWYDvCdVj06rt2UTzZKDO8ldKRfpgagZsKxxjRezW2p6adqp0/DNcY/sr2pfew/oKObiaTW2KRQ63+LuGudsQmzmI7EtvHOey1psrw2mH2mxzZSQfl7Luaa7sLL0px47xaI3loni/NV+K+HmaiyPZ1JlcJ7PaDaxDhYOFLBX3I3Ixqx7JJqe/VtLBQq2pwzdKB2qn0wGgXNAuzRXoruOLVk4L2p+aDkWb0/FZXwesy2xZk473i++7lfSeu71OLRHLl2dUn0gNgizF+Ib35aZVj/u3lW6PU1cP1nnM49nUhliWaopqnbE25WmVPMDcbYjNNEsG0ptPs8uH/lR0RkPmfPqDb6ZZsintzFuZ6TKf/zBjet/ews9RpF+osdxwekOvfkK/uQu2zbvtsWzqead7stqNrqJoHF6bL8XYPMrFrWzqDJQ4QNtV5+CjnMOtcsEMaK5Adx1ftHJaULFZUDwOaDSbYD6+J2xN61Q+JTeOTw/UORYqN2Oq8aoe08bj4sPT42k/G+/X2xfg9jRb1jSI6ak6j4lZKeUPBfemeIdo1ESD63DKxYV0f0UeYPY2xPE5Wj7+WE8Wfj6ZtdYs6Zbmylg22biq7kxrvfbRVMRHwR/np17N2r/+jZ1k/aJqpLQNnpnmIOtWOlDI5GJWjdf4O5nu+lB704GCU7SY6X5gSBiga/ajrTRXai07lN6zRhbQe8KOOsf79WJVSceoxQ+kqqcFVdfrVCrs4706Psg6kn7HzgW2Pc2WkRSfoRrHQ+caHDvtqJHLW+n/h9L/Y+ZLnOK+L/18xPERzN6GOFfNlTOlP/BWmyXd2lxZl9VursSn+MXzXOON6aoictaLqpHSNnhqmsdUZ2jtkYtZ1WpzpTpVe3CerJ+Dh87eDwwJA3TNflRzpfYx+HiLsaoW8dXT+uMaLHGK76V0f3x4uLr0mAfTct6X7zSSzV5z5WZhWy1f82ZPdudsYXmADm2u7Cz9cWuu3Cmm5hWnWG5KxXpZNFaK50iuziY70YrI2RFvVsXTreLTlVrd/LWlN6HYzs/KxayKT7eKjZJTNQ4YQnxadiIdzM2bxoqDh46muQLdtR9tpbkSy5UvsF7v9I35/J6wJa1TeSZofIjR6IOOODUqZkccTMdKh6Y5PtqRtf9FGQv9fbneqVYns6lnBpSPncozgaoXuW2Us/g96+UBZmdDnGlzZTCr3e0snxZ0NNNcqSWK+ceyyfMdo5ivNlv6CgXjoWzqVdj3KOhnXcT9wULR/kg2eZG7gWxy5tDZbOpMlRNZ/YuLyUV7ojk7mv4f+5erhYJ3VTZ54cDYr5zKOux8YQcP85rmCnTXfrSV5sqeGoVqXMfiZjbDU1I77D1hKLvzOjK9aT23NjieLe87HykcH41ld14vcE/WQRe57bAc1LuAcKMGV8T7cOm2OHW92hA8mN35QdXmlOtBeYDZ2RBn2lw5V+ePvC/ddy4VShczzZV6TqQdYhSJF7LJZtWObHLq30C670xaLqZZrlFEzqr+FONTKR/F5uBYYXuMTxGqXzl4Li3r639nV3zidTWbvBjegVLxG38b1U91rqbbqmO3XDADmiuw8I99y8exzR5vxr4hZg1vKRTA57OpH34tlPeEx7Kp15SLD02vZ5MfbkQsRkrLF2f7bk2xWlO4/3w2+WHIYNrfPuh9ua6xdIzZW2iE3MomT+0ZTDmo3l+9JmO1URKxj4ZYtUFzNMW8en9voVZzfASztCEOzXD5TdMUM8NpJ9CXTb1myHRaXX6+/2FGjNZnUz+BL85cqb6JD6flertg27wXKim+5av+D5S2x4j/hmyG3w4gF9PuA+KgoXyOdnXmSm/aH5WHRhczobkC3fWe1kpzpVrARoF7Npts6q/qkHWZTfFBUlyk9mKKUaxzcdZKfLBa/MA1jolupGbA2VTUjxbuj0L/SopXzKS4np63b4FtT7NpMMX/copp5KA4c7p6WtVQ4Rj2XMrbmRTjk6Xniw+srqYcXE4/r1qAf9dwTzfEauez1phudsRoi02QNQ1+16A/TNsmciEX3EOaK9Bd+9F1WeszgdemwjaaDb0dtC6zLT6s2JbWtbxfHMruvIhvHMdvT6PWfjRitSU930bvy03pTdvZjuzOi9GWZ65UbWwQ42jAbEr3b8468MNax0cshA0x3lj21xlbZvmlbmnwu9b5w7RtIhdywT2kuQL2o9bF9oQ8YENEPOQCuZALZiCmsleEAbpuPxoXAj03zfCeYHtCHrAhigdygVzIBU0YFwLoyv1ozJ4emWZ4T7A9IQ/YEMUDuUAu5IImaK6A/ah1sT0hD9gQEQ+5QC7kghnQXAH7Uetie0IesCEiHnKBXMgFM6C5Avaj1sX2hDxgQ0Q85AK5kAtmQHMF7Eeti+0JecCGiHjIBXIhF8yA5grYj1oX2xPygA0R8ZAL5EIumAHNFbAftS62J+QBGyLiIRfIhVwwA5orYD9qXWxPyAM2RMRDLpALuWAGNFfAftS62J6QB2yIiIdcIBdywQxoroD9qHWxPSEPdKuxsbHd+Yb4VGyMxtNDPOTCkItOHn/i3UtzBVCEKSjlAHkAAFhobgkBdL74YPHYsWO3FkrDfSGtixwYMxxP2sMBAMxvf5ePT+fjSj7+Ih+9QgKdy8wV5EAeAADoPJ/PJk4L+lI+3iYcoAizLrYn5AEAgNZ8IJtornw2H8PCAYow62J7Qh4AAGjNz2UTs1Y+IhSgCLMutifkAQCA1m3OJmauvE4oQBFmXWxPyAMAAK0byMdn8tEnFKAIsy62J+QBAIAJ0TDZmI8d+diZj/1pjKVxNh/nFlUq/19PT+XKokU9n45/Fy9e8uG4PR9n0nJHC4/dmZ5vJB/9QgyKMOsiB8gDAMBCUMnHunxsz8ehfJxe1NPzycWLl3z6+S/4qo++6hu+6dKrN37rR77nB197OcYbDr7lWoyHfuvdXzz6238wfurcB8bf8/4Pjb/7/Adv/3vy7KPjcftbj58af8MvvOXJvQd++dr3vmbXlXjsyDdv/ut4vq8YeuHH8+f/bKWy+In7enrek37vtvQ6KlICijAFpRwgDwAAnWwwm5hBcqKyePGFRYsWfeEZzxr4u5d93ddf+uHdP/Wxtxz77Zt//IGPjD/+sRtzPv7w0Q+P/8rYyS++9if2Xf26Df/8Y8969nOeiNezZMnSv4zXl4/RfKySMlCEKSjlAHkAALjXVudjT6VSef+SJUv/4ZUbRj76Hw/96pPvPPO+8f/x0et3pZHS7IjXE6/rwJt/7eY3/cvv+PiSpb038tccX/W8Lx9rpRIUYQpKOUAeAADuluF8HKhUFl9cvmLF32/6jq2XH3rHf/1CpzVTmmm2PPyuPxr/zn/zA3/3QP8zPrVkydK/ydfrcDZx3RanEEGXF2EKSjlAHgAAZltcJHZfT6Vytf9ZA5/ctmP0Y+/4/T+bV82U6UZc42Xn637yUy/4ytV/W6ksfmpRpfKWfJ2HpB7uehG2KR8b2nxsXCx7sIsKyt58bM0mrm011OTyW7KJC4BHrCpdsD3NtYjh5hTTZmdBjsyXHMyjPAAAdLQoUvZHs+Gff/Pmv40GxEJqqDS6ZssPvPbfPRmnOvUsXvyb2cQFcYG7U4TFt4KNtdlYuZUK124oKOO0zCv5uJiPR9K672iw/Jq0/OUU42v5eDzr4G9Ymwc56EsxjNd5PuXgYIPle1Psr2cT33x3NT2uT3MFAGDhNlUOVyqLP7Nl2/c+Ec2GbmiqlMd7/+Lj4z/+0wc+3bt8xacrS5acnq2iDTRXpt3/DLT4mF2psB3vouZK7JPiq+urMx/iguI3G8TubGn5gdQUOKSob1ucSnqh0BwZSdtgvYZ85OhGNnlB9cHUYNmruQIAsLCsXtTT87aYsfF/7Pih63fr2306fTx66dr4/l9662f7n/HMJ5cs6X00m5hWD8xNEdbqaUHxDWAxC2N3FzVX+tO6bi7cFk2TmBExWucxMUNia+m2mCF0TlHftmiM7CndFrOI6jWs9qdmTFG7M7XkAQCgA8VB+d6lS3tvvOZ1//5GzNjQVKk93nz0t74w+GWrPlmpLI5CZcimA7NehLVabG5JzYahLmqubEjrOlSjgXKkheeJU1qOK+rbFjnYWLottt2zdZYfyaY2xeIC8THbaJvmCgDA/DfUu2zZIy956cuud+vpP+1809Cun/rZpxYvXvJk1vgaB6C5MvfNlaf3ZV3UXNmS1rUyg9jtS4X92gW+Pc11c6W8vcXslMcbPOZAelx1HOmSv2sAgAVt+9Jly5/6sde/8XOaJq2Pd55533jMYrmvp+c9WevXiADNFc2Vdm1N69pu7KKxciu78zQhRf3sNFcu1Fm+el2c0bS9xrc8xTVYXHMFAGCe6l+2bPm7n/f8F3w6GgQaJTObxfJ9r3ndpyqVxZ/q9EIFNFcWTEE5ktZ1VY3YHW3wuEqKbRT0m7tke7rbzZWjWf3r2MT6lL9NaE/KR0UeAADml7VLe5dd2/b9P/y5uFCrBsnsjLf93p988RkDz74WFwTu5INk0FxZEAXlQFrX8oV/46uWd9d5TF+KbVyEdV0XbU9zKS4gvLN0W1xv5cE6y8dsofIFhzelXA7KAwDA/LFmRV/f9Tc99HYNkTn6VqF/+jUvv3rffff9jgYLmiuaK3PssWzqLJVNqXgfSj/3Z1MveHs0NV8Gu2x7mksR0/OF/f2alIPqrKDelIPeQuPlbOn9Ibb1S/IAADB/DC5Zuuz6G9/8kEbIHI73XXxi/IVfveaTWeOp+aC5orkyU+uzidNJzmQTF0WN/xdPOdmfTV6XZXX6fyxzuTROKOrbFttczASqfv3ytVI8R0rb5Nq0TDTGDqRGS+RkQxf8XQMALIzGSt/KlR//9/t/4UsaIHenwfKCr1z9t3ncD9v00Fxp2aY2i8047SW+vWuwg9ZlrkXTZG9qpJSvobIum/w2s8H0/1pjk6J+Zu+v2cR1UyIH8ZXKldJ95W0yTunalZbfk82DmUSaKwAAqeC4/4H+j77mR39SY0WDBRRhCko5QB4AAFpUWflA/we/5wdf+48aHvemwRIXuc0mpn+DIqw1MSNjbJqhoLQ9IQ8AAHPrWc95zo+87C+L0gkAAB+TSURBVBWv0li5h+OPP/CR8Upl8VPZxPR9UIQ1L05X2THNUFDanpAHAIA51bti5crP/Obv/akmxz0eO1/3k3F60CmbJIow64IcyAMAwDwy+Lwvf+PIN3/bFzU3OuMrmpev6ItvENpgy0QRZl2QA3kAAJgf+pevWHHz3e/9oOZGh4yf+cUjT9zX0/OoTRNFmHVBDuQBAGAeeMELV//av/qu7b4dqMPGs5/7vI9lE1/VCYow64IcyAMAQAfrXbK091ZcSFVDo7PGr779924sWrTogzZRFGHWBTmQBwCAzrbun6xZO2fXWjn86+8c//7R3TN6jnN//tfjxebPe//i47dvm4trnbxywzeO/+GjH779/N/xv28fP3XuA9MuO1ex+x8fvT6+aNGiL0QDzGaKIsy6IAfyAADQoVa/6MU/suk7vmvOGgSv/Xc/Pf5lq75iRo2V/mc+a/zob//B07c969nPnfLzbI0f+rGfGv/uHxi9/f/3vP9D43l4Gv6e1x/45fFv3PTtczp75RnPGohTg4ZtqSjCrAtyIA8AAB3qxWu/5l0/9h/e2LHNlVpNjumaHu2MmBmzfMWKp2eiNNNcidkrc9XoqY5XvOrVH8pfx05bKoow64IcyAMAQIcaWr3mQ7/yG79zT5sr7zzzvvFv2Pitt5db/aKXjP/kf/zFp+/7Z1/7ittNjhf905eORxNo+FWvnvJzdXbLd33vzvHnD33V7RH/j1OHqk2TeMybHnr7+NALv3r8Za941e2mSK1ZK3GaT6OmTq2xfeeu8X/xbf/bnMXvh3/89Zfy13HYlooizLogB/IAANChnjnw7M9EI+FeNVfimiYxYyQaItFk+YW3/sbt2SA/+G9/4vb98XM0OaLhEstGs6P4czRKoiETTZi4L0Y0UF7y0q+9fc2SapPkuc/78tvPGU2UWq8jGi8/8Yafb7m5Eo2pJUt7azZsZmM89Funn8pfxzlbKoow64IcyAMAQIda1NPzv+bymiHTNVc2f+d3326GFG+Lhko0LN538YlpTwv6+bf8+u3mTHWmSnUmS0+lcrvxUX38rp/82bqvIR4by7z1+KmWmytxGlEs95u/96dzEr94/jxHH7OlstCMjY3tzouwp6IQWyBjIa2LHBgzGX9iDwcAdJ2V9z9wcy6/hnm65kqcxhMzT+KbeaojTrOJhsXD7/qjaZsrMeMlmivFx8eI2+J3Vx//X06crvsa3v3eD95e5uTZR1turlRfTzR55iJ+v/G7f/y5/PkfsaUCAABAh3rhV7/4I8UZG3e7uRL3xTVRYrnyiAbHdM2VaKTEc9R6fCzTTJMkTkeKZaLJ0m5z5Y1vfmhO4veje/f/Tf78R2ypAAAA0KFe/NJ1p4vXGrnbzZVorJS/CjpOhYlmRTOnBcXpPnGNlri+SvE54vFxTZZmmiQxc6e8TLPNlTgFKZtmZsxMxqs3bvqf+fPvsqUCAABAh1o3vH5fzP6Yy+ZK9euKyyOudRJNkLg+SnX2TFwYtvrNQdEwiZ+jebH/l956u5FRba7ENwXFzzHbJK7PEherrTZY4r54zpiR0myTJF7j6w/88h3Nlbhwbvl1R9OmulycuhTLVV/bbI9nP/d5cb2V9bZUAAAA6FzDL1677ktz2VyJ5kOtUW14xDLRIIkGR1wrJa7DEo2R4uyWWL76lcffuOnbb//89SPf/PQ39sRjV97/wHj/M591+99oxrQyAyUaTMUZNNXH1RrFZlTMnClfkHc2x6KenrjmSp/NFAAAADpX39LeZV8sftvOvRhxClB8405xVkhxRLOjODuk/HPMWokL0r7j9/+sra9FjsdFYydeRyuPi4vxztXFbN/2e3/yxUU9PR+1iQIAAECHW/2il5z5/tHd97S50gkjZsLEaUDNLh+zYWKWTfl6L7M18rzEKUGjtlAAAADofIPLV6y4NZdfyTwfRsyGiWZJs7NX4nSgubqQ7ZHf+J0bPT2LL+W5qdg8AQAAYB5Y/aKXPDyXF7adLyNOLWrm4rRx6lGcSjQXryFmwgw857mfyNOy2ZYJAAAA80f/ir6+z9e75olx98ZP//ybn7qvp+fPbJIAAAAwz3zFV60+OPItm/+XBse9vbDv0mXLn8rTMWyLBAAAgPmn94H+Zz7RykVdjdk9HejFa7/myUU9PcdsigAAADB/DT7Q/4yn9h18i4bHXW6srP+Gb7pWWbLkVOYitgAAADDvrbn/gf4bb3ro7RofGisAAABAuw2Wpb3LPv/W46c0QOa4sfLqb/rWf6gsWXJGYwUAAAAWmN6+vn++8v4Hbj78rj/SCJmj8S3/6jufWrKk99E83H22OAAAAFiIDZYVKzYuW778cy5yO7vjPe//0PhLXvqy60uX9v6ZxgoAAAAsfEMr7+//0Nd+3dd/7g8f/bDmyAzHz/zikX9c2rvsM3lc92ROBQIAAICuUem7//4DfSsf+JwL3bY3ojH1iq//hk8v7V12MY/nGpsUAAAAdKfhvpUrP/4v//W2m++7+ISmSZPj0EPHv7i8r+/Gokrl5zKzVQAAAKDr9S1fsXLsmQPP/swb3/zQ7W+80UCpPd555n23Z6v0Llv+13nchm06AAAAQNHIyvvvf+xZA8/59Ovf+KYvPXrpmoZKGkd/+w/G/9nLXnF92fLln8jjtDsfvTYXAAAAoJ7hvvvv/6MVK1d+Zs/PHPzHbm2yxAyew7/+zvHnv+Arn+pbufJSHpcdmVOAAAAAgBasW9638nd6ly3/7Gt+9KduvvcvPt4VTZVoJv3cLz/0xYFnP/cfYiZPHoctNgUAAABgJlb39i5/2+LFSz770pe/8lM/+4v/+Uvn/vyvF1RDJS7m+/Nv+fXxb9z07X+/ZGnvzZi5k6/3BqkHAAAAZlNfPrYuXrLkRDRavuqfvOgTu//Dgc+/+70fnLdfpRzXlln7NcNPLlmy9HMr+vr+WzZx6s+AVAMAAABzLa49snFRT89bly7t/eTzvvz5175/dPenH37XH4136ulD8bri9b12z74vfPnzh/5+6bLlT8WMnHw9NmcuUAsAAADcY+vzcWDZ8hV/3lOp3Lz/gf7rL335K6/+m//zR/7+TQ+9ffzk2Ufv6oVo4/fF7/2+H/6xz73sFa/6ZP8znvnpeF0r+lb+v0uWLD2UOeUHAAAA6HBD2cSFYPdVliw51bts+UcW9fT845c9/wVPjGz69qs/+G9/4vro7tffeOObHxqPEV91HCNOMXrP+z80Xv6GorgmStx+6twHbi/3X06cHq8+NmaixPONfMvmT33Zqq/4VKWy+PMrVq68vGzZ8nfnv39veh1DUgIAAADMd3HqzXA+duZjfz4O5GNsUU/P23qXLXvk9uhddmVp77Kr0YjJ7xtftGjRl+LfmHUSty9bvuJvlq9Y8eiy5cv/+5Le3rfH49PzxPPF9VLWZU7xAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqOfhhx/+3XxcNu76eFIMxLwLxsP2sgAAQDc0Vy6LgriLOWIOAACg+BF3xFzMAQAAFD/ijpiLOQAAgOIHcRdzxBwAAFD8IO5ijpgDAAAofsQdMRdzAAAAxY+4I+ZiDgAAoPhB3MVczAEAABQ/iLuYI+YAAACKH3EXc8QcAABA8SPuiLmYAwAAKH7EvdP156NvDp53YI6edy5iPpTGgNzYvwAAACh+5l/cx2uMC/nYPsOXMJKea2ia4v1SNtlcmG75stF8XEuPu5iPTYX74v/nOnhb783H/sLrr47z+Rie45d6N3JTtTUf5bjMWm7sXwAAAEU+nRD3KJrHUsEdY3M+Hky3j8xxAX8kH4fT/1st4KNAv5WK95gJEY2Km/lYXVgmCvgdHRjzSj7O5uN6NtEgWpVuW5+PM/m4kbXXyOiU3FRtTetSKy6zkhv7FwAAQJFPJ8Q9iub9NW6Pxz9Yui1O5RhOo9ZpHXHbhmxi1sN0BXw0FG6mf9sp4KM5cbx02+P5OFD4ORowV7KJxkUnxXxHWtcNNe7rTbE/XLq9Py1fLz7V3KxtcP/dyk1fyk08xyNZ7ebKrOTG/gUAAFDk0wlxr9VciYL3aj72FG47korleN6YcREzEraXGgY30uPi3xPTFOTxO4unhrRawMfvGC3ddjgV88X1iNe6pcNiHqf+nG1wfzRI+gs/H0ixv5L+jccPFu4fLcU+TpFacw9zE02ZU+k17M9qN1dmJTf2LwAAgCKfToj7eCqk96cRhfxj6bbq7JRtqahfWyiM41SiS+nnOBUnTtHZmX6O03Qen6YgjybIwTYL+L607KYaTYHyep/O7pyBc69jfjOrPVuoll3ZRENkpBDbR7LJJtLmFItt6eeY+RKNjSvp/2vucm6yJnIya7mxfwEAABT5dELcx1Pxey6Nx1Ix/3g2OfshZiKUT2HZnR5bLaAvle7fOk1BHg2GHW0W8NVlR5oo5MuzWTol5uVZN3sLOYhxIt0e+ThSWnZ9eo5odp3M7pwFM5Du33IPcpM1kZNZy439CwAAoMinUwr98iyK3lSwF4vymCFxPBXD11IBXm2ujGV3fvtLo4K8OvNkY5sFfG9adnMThXyj4v5exTyaVwdLt1UbIdVTci4Xli03YirZZPMkmi+HavyOePzeNnLTP8PcZC3Ef8a5sX8BAAAU+XRC3Otd0HZHoaCO/99KRXzMelhTuD8crVHAr25QkBebA+0W8NdrNB2O1HgdndhcidNhLjS4v/iao5G1u3R/tQEyktb3SI3nuJbiM3YPctNs/DVXAAAAFD8LIu71mitRsMesieoslhOl+w9lk82VnWnZ4jcI7ZymII/myK4ZFPCnSq8pmgIx0+ZAabm4pseZDov5SFrXfTXuq6T1qj5XxP50aZm4vko0uwZTni5kU791Zzib/Dai0XuQm6JGDZQZ58b+BQAAUOTTCXGvdUHbM6XiP4rga6kpELNW9qSCfTwV9X2pgI4mQFwPZHv6uVFBfiabejHTVgv4DanBsD81E46mpsBgabnHsjsbLp2wre9Or/98+v+O9DovF9YrSzGPnw+m9YzYXi3Ebijl4ni6P2acRJOpeh2We5GbokbNlcey5i/sa/8CAAAo8unYuJ+rMR7Mpp4WEgX60VQkx9f8xoVI16Zlixe9rc64OJ8eH/cP1vm90Uy4Uvh5cJrla9mcCvTLqZkwXLq/emHXtR26ra/LJk7buZjW4UKK7erSciNp/WKZuNBwzCqplJ7nZOE59mdTZ6qsKtx/t3JTfK4TNW6fldzYvwAAAIp8ujnucbrR1ezOb/yZTXuyO683YltfQLmxfwEAABT5dHvc43ogp2oU9iPTjDVNPHf1GizrxXzh5sb+BQAAUOQj7hMF/LrCz9VTUBqNvU08b1xb5KCYL+zc2L8AAACKfMRdzBFzAAAAxY+4I+ZiDgAAoPgRd8RczAEAABQ/iLuYizkAAIDiB3EXc8QcAABA8SPuYo6YAwAAKH7EHTEXcwAAAMWPuCPmYg4AAKD4QdzFHDEHAAAUP4i7mCPmAAAArRY/T0YBZNzdcezYsVviIOZdMD5hLwsAAHRDc8Uny+Iu5og5AACA4kfcEXMxBwAAUPyIO2Iu5gAAAIofxF3MEXMAAEDxg7iLOWIOAACg+BF3xFzMAQAAFD/ijpiLOQAAgOIHcRdzMQcAAFD8IO5ijpgDAAAofsRdzBFzAAAAxY+4I+ZiDgAAoPgRd8RczAEAABQ/zavkY18+LuTjUj4O56NP3KeN2f58XEzjUAsx25GPE7bytrb17fl4LB+XUwxXTbP8tnw8kpY/lY91Iq65AgAAKH7mwoF8XM3HlnxsTs2CU+Le0OFCzLakmB1v4nGx7M18nLOVtxzzrfm4lY/RfGzMx+kU9946y0cjZjwfB/MxkrbzG/lYK+aaKwAAgOKnnt42HtOXiv3thduGU1G6Wtxr6k8x21q4bSTFbKjBYx5MzYGYHaS50vq2/ng+jpS23RulbbeoVsPrRGbWkOYKAACg+KkhissrqbiPf+MT+mYfX20KDJZuv5aP3eJe0+YUs/7S7VHo72gQ52ioxGkpY5nmSqsx708x31y6/Uw+jtZ5zHiNfOxK27aYAwAAKH6eFrNMYjbEnmxi5srGVDyON/n4HXWWjVkCB8W9bsxu1Lg9Hru/icdrrrQe8zVpO13bQiyvp7+LokMt/G3YvwAAAHRJ8RPF5dnSbbuzmTdXzqXnFvc7RQOl1nKaK3MX85Gs9mlXjWIZM1riujjD6ef4t5XGo/0LAABAlxQ/tWaYjGQzb67EN6wcEveadma1Ty3RXJm7mK/Nal8HqFEs45osZ9PjYhZLnDK3L9Nc0VwBAAAUPyXxtbSHS7eNtFBAbspqXz8kPvHfI+41bUkxK19AOBouu5p4vOZK6zEfSDHfWLo9vtVqugvURmNmfcpX5OeSmGuuAAAAip+i+PaUR0q37c+ab65EUyWu2bKpcNuq9PgN4l7TYI341LsmSC2aK+1t69EU2Vf4uZJNNAHrNbT2ZhOzjIoi7kfFXHMFAABQ/BTFaRI3UsE+kgrNG1lrpz7EYy+mBsGqVIA+Ju4NncwmTsmqxux8NrVhEkX9oQbx1lxpPeaxbcfpPdHUilN+orEYs4Wqs642pNgOpJ+jERPNl3Vp+b3pb2ONmGuuAAAAip+yuFBnXFsiHnM6m/gq5laaK1F4xqkVt9Lj4rkGxX3amJ1sELNorJyv89hD2fSnsoh5bTErq9o8jIbg+sJ9W9PfwKr0c8xseTAfNwvLj4i45goAAKD4KYvisnwdiviE/2qbv7pX3FtS6faY3aNCv2+OlxdzAACALip+RrOJUyWiwRIzJ0ayiU/vD6WCcmiaoehUdIq5mAMAAHR18RMzJ6KREg2W6lfOHkq3V0+TaDS2iraiU8zFHAAAQPGDuIs5Yg4AAKD4EXcxR8wBAAAUP+KOmIs5AACA4kfcEXMxBwAAUPwg7mKOmAMAAIofxF3MEXMAAADFj7gj5mIOAACg+BF3xFzMAQAAFD+Iu5iLOQAAgOIHcRdzxBwAAKBR8fNkFEDG3R3Hjh27JQ5i3gXjE/ayAABANzRXfLIs7mKOmAMAACh+xB0xF3MAAADFj7gj5mIOAACg+EHcxRwxBwAAFD+Iu5gj5gAAAIofcUfMxRwAAEDxI+6IuZgDAAAofhB3MRdzAAAAxQ/iLuaIOQAAgOJH3MUcMQcAAFD8iDtiLuYAAACKH3FHzMUcAABA8dOenfnYIe5N2Z6P02nsbOFxfekx62zpLcd8fT5O5ONsPvalWDbSn48Dafl43EYR11wBAAAUP3Npaz5u5WO/uE9rTz5upH935+NaKuKbMZaP8XyM2NJbivn6tH0ezsdoPi7k41yD5aPxcjEfj2QTza9D6fEbxVxzBQAAUPzMtv5UeN5MTQLNlcZ683E9mzpbZUsq3AemeWw0sOJ3aK60vq1HI+V44edVaZvdXGf5mNlyKZs6uyVmr5wRc80VAABA8VMWn+ifT0V7nP6wI2v8iX5ZLP94ep54nOZKYzHzIZojxUZKJRX62xo8LpoB11KcNVdai3k0SKJ5taV0e2yvR+o8JrbpvSI84/0LAADAgi9+VmcTp6c8mI/hfOxKReh4C7+uv1Ssaq40Fs2omzVuvzxN7KLxdTD9X3OltZivTjErX6dmLKvfSIy/g5gpdDTlJk4R2i3imisAAIDipyw+tX+kdNuBrLXmSpHmyvT2pWK9rFFzJa7NEjMpKulnzZXWYj6SYjZUur1ec6U/LX81m7hGSzw+ZrHcSrkQcwAAAMXP06KxcqhOIdoOzZXpjaaivaxecyVmW8Q1WtYWbtNcaS3mw1lrzZW+tPzJ0u2HstqNMTEHAADo4uLn8Uxz5W7HfWud+EbDpdZpJ3FayrUU2+oYT7k7bFtvKuaDWe2G1MnszgZK1c0a2/KOGfxtdOP+BQAAoCuKn/j2lLOl23ZlmitzGffq9T+GC7etSrdtqLH8lhTT4ohlx1Kxb1tvzpXszlN64rH1Llobs7qOlm6Lx18Vc80VAABA8VMUp5zcSgXmUDbxTTbXMs2VuY57xCm+0jdOP4nrqJzKJi6YWhUNlUYXT3VaUOsxj+0yll2Vfo5tPmanDBb+FmKZ6gWaqxcersY5/j6iQXNQzDVXAAAAxU/ZllQ0jqcC/2imuTLXcY9C/UI28U1NcT2VS/lYU7h/LGt8bQ/NldZj3puP09lEM/FqivvWwv3VU36GCrfFtnwz/X3E406k5xFzAAAAxc/TVqdRNJoKT+a+6IyL1MaMiYro3bWYx8yV9dnErKFmxEyWDdnkjBcx11wBAAAUP1PEqSdXC4VjnCIRF0o9IYqKTjFHzAEAAMXP9OLT+/i2lDgdonpqUJw6EU2W6mkSjcYO0VZ0irmYAwAAKH6ybCCbuNbEgOgpOsUcMQcAABQ/ih9xF3PEHAAAQPEj7oi5mAMAACh+xB0xF3MAAADFD+Iu5og5AACg+EHcxRwxBwAAUPyIO2Iu5gAAAIofcUfMxRwAAEDxg7iLuZgDAAAofhB3MUfMAQAAFD/iLuaIOQAAwGwWP09GAWTc3XHs2LFb4iDmXTA+YS8LAAB0Q3PFJ8viLuaIOQAAgOJH3BFzMQcAAFD8iDtiLuYAAACKH8RdzBFzAABA8YO4izliDgAAoPgRd8RczAEAABQ/4o6YizkAAIDiB3EXczEHAABQ/CDuYo6YAwAAKH7EXcwRcwAAAMWPuCPmYg4AANCVxc/GfBzKx5F87MhHRdynNZxidjgfI00svy4fB9Pym2vcvzof+/LxYD62dUsOWoz5UIsx6svHrnwcTf/21VmukvIyIOYAAACKn3ZEwX8jm2isRLPgaj7OZ13YYGkh7lvycTMV7VHo38rHaIPlt6dlTqV4x+85Xrh/Q8rBI/k4kI8L+TjXDTloIebRfLqej9MphtfycaLB8tFIuZiPxwsxjdFbY9lorIxnE80b2zkAAIDipyWrUlG5tXTbzdJt4j4pGh7RgNpTuG00Ff61Zkb0pvsOF24bzCaaKVvSz9EEOFNqDFzKx24xf1o0pk4Xfl6bTTSsNtRZPma4XC7kpK9G3laluN/KNFcAAAC6uviJgjBmUMRMh5hFMZKPsSYfuzo9tjxD4koqTsX9ThtSIb6qcFtvKtC31Fh+fVp+bY1mQcR+IN1fPlUoZhGdF/PbYvuMht+20u2PZVObVtPddzj9nVRFAyuaK9szzRUAAICuLX5iBkR8Gn82m7hWSpzacyMViu0aTo/fKO41RZxv1bg9HlurIVVtrqwp3X46Ffr1miuH03OK+UTTYzzFsiiaiGfqPCb+DsqnasV1V64Vfq42vEYyzRUAAICuLX7iWhLx6Xtx5smRrP3mymA2+Wm+uNe2N6vd9Ijb9te4PU5HKZ8WFI2WmIlRnUURpwWdLuSx2jS7Jea3jWS1mx9j2dSZKEWx/I7SbTvq/G3Ue/5u378AAAB0RfFzPrvz1IeNWXvNlTWpyD+f1f9WFXGfuA5KK82VsDObaJTEBWvjIqxx2tWZQmMgchbNlrjg6vF0/6n0r5hPzv4ZKt2uuTK3+xcAAICuKH6iGD9Yp1BsRVxH5Foq6PvEvaHtdeIbjZA9DR4XX8Ucpw3tzSavk3OqcP/qdN++tOyelF8xn7zwcvnitSdKMSyK7XlX6bY9We2GVfVvZsh2DgAA0H3Fz8ls6jeohHqfztezKZuYNREXUK2I+7TWZndeQ6V63ZRNdR4TDZnB0m1x+tXe9P8t2Z3XZImZLUfF/GlxatXO0m3RfKo3WyiuQ/Rg6bZ612gZyTRXAAAAurb4iWK++C01q1PR3mxzZTAVrcdTYVkc/eJe1+PZ1G9kisZUzIjoTT/HDIviV1nH6VbF07fiQqs3ssmGSxT8xSZZ9dSudWL+tGiURDOlOrNqS9r21xa2/R2F+3ekbbvatFqTYr69xnOPZJorAAAAXV38xOyHmHlyLRWPp7Lmmyv707K1xn5xr2s4xTuaJo+nuBdPWYnGS/G5NqVlYtnH0v+LzZco/K+m53sk5XOXmE8xkOIXcYrrAkVjZXfh/uqMraH0c8zCOpFifS7F9ESd5x7JNFcAAAC6tviJ2SUxW6IvFYbx785UUDZbsA7VGWauTB/7aJBsS3Esx3VV6bbBtOzWGstnKXdb0jKrxLymaJhEoyoaKatrxG8ou/PUtvVp+eEGz9tb57FiDgAA0AXFT/VrgfsKRWJca+KMKCo6xRwxBwAAFD/TixkQcR2KOEUlTn2onloSn+pvSrc1GptEW9Ep5mIOAADQ7cVPnMpQPfVhfTZ5akP1NIlGo0+0FZ1iLuYAAACKH8RdzBFzAAAAxY+4izliDgAAoPgRd8RczAEAABQ/4o6YizkAAIDiB3EXc8QcAABQ/CDuYo6YAwAAKH7EHTEXcwAAAMWPuCPmYg4AAKD4QdzFXMwBAAAUP4i7mCPmAAAAjYqf340CyLjr40kxEPMuGA/bywIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs+X/B4A/LZrUS+A7AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image('../images/2/student_full_param.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In pgmpy we define the network structure and the CPDs separately and then associate them with the structure. Here's an example for defining the above model:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from pgmpy.models import BayesianModel\n", "from pgmpy.factors.discrete import TabularCPD\n", "\n", "# Defining the model structure. We can define the network by just passing a list of edges.\n", "model = BayesianModel([('D', 'G'), ('I', 'G'), ('G', 'L'), ('I', 'S')])\n", "\n", "# Defining individual CPDs.\n", "cpd_d = TabularCPD(variable='D', variable_card=2, values=[[0.6], [0.4]])\n", "cpd_i = TabularCPD(variable='I', variable_card=2, values=[[0.7], [0.3]])\n", "\n", "# The representation of CPD in pgmpy is a bit different than the CPD shown in the above picture. In pgmpy the colums\n", "# are the evidences and rows are the states of the variable. So the grade CPD is represented like this:\n", "#\n", "# +---------+---------+---------+---------+---------+\n", "# | diff | intel_0 | intel_0 | intel_1 | intel_1 |\n", "# +---------+---------+---------+---------+---------+\n", "# | intel | diff_0 | diff_1 | diff_0 | diff_1 |\n", "# +---------+---------+---------+---------+---------+\n", "# | grade_0 | 0.3 | 0.05 | 0.9 | 0.5 |\n", "# +---------+---------+---------+---------+---------+\n", "# | grade_1 | 0.4 | 0.25 | 0.08 | 0.3 |\n", "# +---------+---------+---------+---------+---------+\n", "# | grade_2 | 0.3 | 0.7 | 0.02 | 0.2 |\n", "# +---------+---------+---------+---------+---------+\n", "\n", "cpd_g = TabularCPD(variable='G', variable_card=3, \n", " values=[[0.3, 0.05, 0.9, 0.5],\n", " [0.4, 0.25, 0.08, 0.3],\n", " [0.3, 0.7, 0.02, 0.2]],\n", " evidence=['I', 'D'],\n", " evidence_card=[2, 2])\n", "\n", "cpd_l = TabularCPD(variable='L', variable_card=2, \n", " values=[[0.1, 0.4, 0.99],\n", " [0.9, 0.6, 0.01]],\n", " evidence=['G'],\n", " evidence_card=[3])\n", "\n", "cpd_s = TabularCPD(variable='S', variable_card=2,\n", " values=[[0.95, 0.2],\n", " [0.05, 0.8]],\n", " evidence=['I'],\n", " evidence_card=[2])\n", "\n", "# Associating the CPDs with the network\n", "model.add_cpds(cpd_d, cpd_i, cpd_g, cpd_l, cpd_s)\n", "\n", "# check_model checks for the network structure and CPDs and verifies that the CPDs are correctly \n", "# defined and sum to 1.\n", "model.check_model()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:root:Replacing existing CPD for D\n", "WARNING:root:Replacing existing CPD for I\n", "WARNING:root:Replacing existing CPD for G\n", "WARNING:root:Replacing existing CPD for L\n", "WARNING:root:Replacing existing CPD for S\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# CPDs can also be defined using the state names of the variables. If the state names are not provided\n", "# like in the previous example, pgmpy will automatically assign names as: 0, 1, 2, ....\n", "\n", "cpd_d_sn = TabularCPD(variable='D', variable_card=2, values=[[0.6], [0.4]], state_names={'D': ['Easy', 'Hard']})\n", "cpd_i_sn = TabularCPD(variable='I', variable_card=2, values=[[0.7], [0.3]], state_names={'I': ['Dumb', 'Intelligent']})\n", "cpd_g_sn = TabularCPD(variable='G', variable_card=3, \n", " values=[[0.3, 0.05, 0.9, 0.5],\n", " [0.4, 0.25, 0.08, 0.3],\n", " [0.3, 0.7, 0.02, 0.2]],\n", " evidence=['I', 'D'],\n", " evidence_card=[2, 2],\n", " state_names={'G': ['A', 'B', 'C'],\n", " 'I': ['Dumb', 'Intelligent'],\n", " 'D': ['Easy', 'Hard']})\n", "\n", "cpd_l_sn = TabularCPD(variable='L', variable_card=2, \n", " values=[[0.1, 0.4, 0.99],\n", " [0.9, 0.6, 0.01]],\n", " evidence=['G'],\n", " evidence_card=[3],\n", " state_names={'L': ['Bad', 'Good'],\n", " 'G': ['A', 'B', 'C']})\n", "\n", "cpd_s_sn = TabularCPD(variable='S', variable_card=2,\n", " values=[[0.95, 0.2],\n", " [0.05, 0.8]],\n", " evidence=['I'],\n", " evidence_card=[2],\n", " state_names={'S': ['Bad', 'Good'],\n", " 'I': ['Dumb', 'Intelligent']})\n", "\n", "# These defined CPDs can be added to the model. Since, the model already has CPDs associated to variables, it will\n", "# show warning that pmgpy is now replacing those CPDs with the new ones.\n", "model.add_cpds(cpd_d_sn, cpd_i_sn, cpd_g_sn, cpd_l_sn, cpd_s_sn)\n", "model.check_model()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", " ,\n", " ,\n", " ,\n", " ]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# We can now call some methods on the BayesianModel object.\n", "model.get_cpds()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------+------+------+------+------+\n", "| I | I(0) | I(0) | I(1) | I(1) |\n", "+------+------+------+------+------+\n", "| D | D(0) | D(1) | D(0) | D(1) |\n", "+------+------+------+------+------+\n", "| G(0) | 0.3 | 0.05 | 0.9 | 0.5 |\n", "+------+------+------+------+------+\n", "| G(1) | 0.4 | 0.25 | 0.08 | 0.3 |\n", "+------+------+------+------+------+\n", "| G(2) | 0.3 | 0.7 | 0.02 | 0.2 |\n", "+------+------+------+------+------+\n" ] } ], "source": [ "# Printing a CPD which doesn't have state names defined.\n", "print(cpd_g)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "+------+---------+---------+----------------+----------------+\n", "| I | I(Dumb) | I(Dumb) | I(Intelligent) | I(Intelligent) |\n", "+------+---------+---------+----------------+----------------+\n", "| D | D(Easy) | D(Hard) | D(Easy) | D(Hard) |\n", "+------+---------+---------+----------------+----------------+\n", "| G(A) | 0.3 | 0.05 | 0.9 | 0.5 |\n", "+------+---------+---------+----------------+----------------+\n", "| G(B) | 0.4 | 0.25 | 0.08 | 0.3 |\n", "+------+---------+---------+----------------+----------------+\n", "| G(C) | 0.3 | 0.7 | 0.02 | 0.2 |\n", "+------+---------+---------+----------------+----------------+\n" ] } ], "source": [ "# Printing a CPD with it's state names defined.\n", "print(model.get_cpds('G'))" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.get_cardinality('G')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Independencies in Bayesian Networks\n", "\n", "Independencies implied by the network structure of a Bayesian Network can be categorized in 2 types:\n", "\n", "1. __Local Independencies:__ Any variable in the network is independent of its non-descendents given its parents. Mathematically it can be written as: $$ (X \\perp NonDesc(X) | Pa(X) $$\n", "where $NonDesc(X)$ is the set of variables which are not descendents of $X$ and $Pa(X)$ is the set of variables which are parents of $X$.\n", "\n", "2. __Global Independencies:__ For discussing global independencies in Bayesian Networks we need to look at the various network structures possible. \n", "Starting with the case of 2 nodes, there are only 2 possible ways for it to be connected:" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image('../images/2/two_nodes.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above two cases it is fairly obvious that change in any of the node will affect the other. For the first case we can take the example of $difficulty \\rightarrow grade$. If we increase the difficulty of the course the probability of getting a higher grade decreases. For the second case we can take the example of $SAT \\leftarrow Intel$. Now if we increase the probability of getting a good score in SAT that would imply that the student is intelligent, hence increasing the probability of $i_1$. Therefore in both the cases shown above any change in the variables leads to change in the other variable.\n", "\n", "Now, there are four possible ways of connection between 3 nodes: " ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image('../images/2/three_nodes.png')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Now in the above cases we will see the flow of influence from $A$ to $C$ under various cases.\n", "\n", "1. __Causal:__ In the general case when we make any changes in the variable $A$, it will have effect of variable $B$ (as we discussed above) and this change in $B$ will change the values in $C$. One other possible case can be when $B$ is observed i.e. we know the value of $B$. So, in this case any change in $A$ won't affect $B$ since we already know the value. And hence there won't be any change in $C$ as it depends only on $B$. Mathematically we can say that: $(A \\perp C | B)$.\n", "2. __Evidential:__ Similarly in this case also observing $B$ renders $C$ independent of $A$. Otherwise when $B$ is not observed the influence flows from $A$ to $C$. Hence $(A \\perp C | B)$.\n", "3. __Common Evidence:__ This case is a bit different from the others. When $B$ is not observed any change in $A$ reflects some change in $B$ but not in $C$. Let's take the example of $D \\rightarrow G \\leftarrow I$. In this case if we increase the difficulty of the course the probability of getting a higher grade reduces but this has no effect on the intelligence of the student. But when $B$ is observed let's say that the student got a good grade. Now if we increase the difficulty of the course this will increase the probability of the student to be intelligent since we already know that he got a good grade. Hence in this case $(A \\perp C)$ and $( A \\not\\perp C | B)$. This structure is also commonly known as V structure.\n", "4. __Common Cause:__ The influence flows from $A$ to $C$ when $B$ is not observed. But when $B$ is observed and change in $A$ doesn't affect $C$ since it's only dependent on $B$. Hence here also $( A \\perp C | B)$. \n", "\n", "Let's not see a few examples for finding the independencies in a newtork using pgmpy:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(G _|_ S | I, D)" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Getting the local independencies of a variable.\n", "model.local_independencies('G')" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(D _|_ I, S)\n", "(I _|_ D)\n", "(S _|_ G, L, D | I)\n", "(G _|_ S | I, D)\n", "(L _|_ I, D, S | G)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Getting all the local independencies in the network.\n", "model.local_independencies(['D', 'I', 'S', 'G', 'L'])" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'D': {'D', 'G', 'L'}}" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Active trail: For any two variables A and B in a network if any change in A influences the values of B then we say\n", "# that there is an active trail between A and B.\n", "# In pgmpy active_trail_nodes gives a set of nodes which are affected (i.e. correlated) by any \n", "# change in the node passed in the argument.\n", "model.active_trail_nodes('D')" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'D': {'D', 'I', 'S'}}" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.active_trail_nodes('D', observed='G')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. How is this Bayesian Network representing the Joint Distribution over the variables ?\n", "Till now we just have been considering that the Bayesian Network can represent the Joint Distribution without any proof. Now let's see how to compute the Joint Distribution from the Bayesian Network.\n", "\n", "From the chain rule of probabiliy we know that:\n", "\n", "$P(A, B) = P(A | B) * P(B)$\n", "\n", "Now in this case:\n", "\n", "$P(D, I, G, L, S) = P(L| S, G, D, I) * P(S | G, D, I) * P(G | D, I) * P(D | I) * P(I)$\n", "\n", "Applying the local independence conditions in the above equation we will get:\n", "\n", "$P(D, I, G, L, S) = P(L|G) * P(S|I) * P(G| D, I) * P(D) * P(I)$\n", "\n", "From the above equation we can clearly see that the Joint Distribution over all the variables is just the product of all the CPDs in the network. Hence encoding the independencies in the Joint Distribution in a graph structure helped us in reducing the number of parameters that we need to store." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. Inference in Bayesian Models\n", "Till now we discussed just about representing Bayesian Networks. Now let's see how we can do inference in a Bayesian Model and use it to predict values over new data points for machine learning tasks. In this section we will consider that we already have our model. We will talk about constructing the models from data in later parts of this tutorial.\n", "\n", "In inference we try to answer probability queries over the network given some other variables. So, we might want to know the probable grade of an intelligent student in a difficult class given that he scored good in SAT. So for computing these values from a Joint Distribution we will have to reduce over the given variables that is $I = 1$, $D = 1$, $S = 1$ and then marginalize over the other variables that is $L$ to get $P(G | I=1, D=1, S=1)$.\n", "But carrying on marginalize and reduce operation on the complete Joint Distribution is computationaly expensive since we need to iterate over the whole table for each operation and the table is exponential is size to the number of variables. But in Graphical Models we exploit the independencies to break these operations in smaller parts making it much faster.\n", "\n", "One of the very basic methods of inference in Graphical Models is __Variable Elimination__." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Variable Elimination\n", "We know that:\n", "\n", "$P(D, I, G, L, S) = P(L|G) * P(S|I) * P(G|D, I) * P(D) * P(I)$\n", "\n", "Now let's say we just want to compute the probability of G. For that we will need to marginalize over all the other variables.\n", "\n", "$P(G) = \\sum_{D, I, L, S} P(D, I, G, L, S)$\n", "\n", "$P(G) = \\sum_{D, I, L, S} P(L|G) * P(S|I) * P(G|D, I) * P(D) * P(I)$\n", "\n", "$P(G) = \\sum_D \\sum_I \\sum_L \\sum_S P(L|G) * P(S|I) * P(G|D, I) * P(D) * P(I)$\n", "\n", "Now since not all the conditional distributions depend on all the variables we can push the summations inside:\n", "\n", "$P(G) = \\sum_D \\sum_I \\sum_L \\sum_S P(L|G) * P(S|I) * P(G|D, I) * P(D) * P(I)$\n", "\n", "$P(G) = \\sum_D P(D) \\sum_I P(G|D, I) * P(I) \\sum_S P(S|I) \\sum_L P(L|G)$\n", "\n", "So, by pushing the summations inside we have saved a lot of computation because we have to now iterate over much smaller tables.\n", "\n", "Let's take an example for inference using Variable Elimination in pgmpy:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Finding Elimination Order: : 100%|██████████| 4/4 [00:00<00:00, 1210.13it/s]\n", "Eliminating: I: 100%|██████████| 4/4 [00:00<00:00, 240.56it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "+------+----------+\n", "| G | phi(G) |\n", "+======+==========+\n", "| G(A) | 0.3620 |\n", "+------+----------+\n", "| G(B) | 0.2884 |\n", "+------+----------+\n", "| G(C) | 0.3496 |\n", "+------+----------+\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from pgmpy.inference import VariableElimination\n", "infer = VariableElimination(model)\n", "g_dist = infer.query(['G'])\n", "print(g_dist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There can be cases in which we want to compute the conditional distribution let's say $P(G | D=0, I=1)$. In such cases we need to modify our equations a bit:\n", "\n", "$P(G | D=0, I=1) = \\sum_L \\sum_S P(L|G) * P(S| I=1) * P(G| D=0, I=1) * P(D=0) * P(I=1)$\n", "\n", "$P(G | D=0, I=1) = P(D=0) * P(I=1) * P(G | D=0, I=1) * \\sum_L P(L | G) * \\sum_S P(S | I=1)$\n", "\n", "In pgmpy we will just need to pass an extra argument in the case of conditional distributions:" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Finding Elimination Order: : 100%|██████████| 2/2 [00:00<00:00, 552.57it/s]\n", "Eliminating: S: 100%|██████████| 2/2 [00:00<00:00, 326.68it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "+------+----------+\n", "| G | phi(G) |\n", "+======+==========+\n", "| G(A) | 0.9000 |\n", "+------+----------+\n", "| G(B) | 0.0800 |\n", "+------+----------+\n", "| G(C) | 0.0200 |\n", "+------+----------+\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print(infer.query(['G'], evidence={'D': 'Easy', 'I': 'Intelligent'}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Predicting values from new data points\n", "Predicting values from new data points is quite similar to computing the conditional probabilities. We need to query for the variable that we need to predict given all the other features. The only difference is that rather than getting the probabilitiy distribution we are interested in getting the most probable state of the variable.\n", "\n", "In pgmpy this is known as MAP query. Here's an example:" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Finding Elimination Order: : 100%|██████████| 4/4 [00:00<00:00, 1073.12it/s]\n", "Eliminating: I: 100%|██████████| 4/4 [00:00<00:00, 273.20it/s]\n" ] }, { "data": { "text/plain": [ "{'G': 'A'}" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "infer.map_query(['G'])" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Finding Elimination Order: : 100%|██████████| 2/2 [00:00<00:00, 417.30it/s]\n", "Eliminating: S: 100%|██████████| 2/2 [00:00<00:00, 219.08it/s]\n" ] }, { "data": { "text/plain": [ "{'G': 'A'}" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "infer.map_query(['G'], evidence={'D': 'Easy', 'I': 'Intelligent'})" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Finding Elimination Order: : : 0it [00:00, ?it/s]\n", "0it [00:00, ?it/s]\n" ] }, { "data": { "text/plain": [ "{'G': 'A'}" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "infer.map_query(['G'], evidence={'D': 'Easy', 'I': 'Intelligent', 'L': 'Good', 'S': 'Good'})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5. Other methods for Inference\n", "Even though exact inference algorithms like Variable Elimination optimize the inference task, it is still computationally quite expensive in the case of large models. For such cases we can use approximate algorithms like Message Passing Algorithms, Sampling Algorithms etc. We will talk about a few other exact and approximate algorithms in later parts of the tutorial." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }